Details
-
Type:
Story
-
Status: Done
-
Resolution: Done
-
Fix Version/s: None
-
Component/s: afw
-
Labels:
-
Story Points:8
-
Epic Link:
-
Sprint:Science Pipelines DM-W15-2, Science Pipelines DM-S15-1
-
Team:Data Release Production
Description
This issue is for planning (not implementing) some changes to Footprint's interface, including the following:
- make Footprint immutable
- create a separate SpanRegion class that holds Spans and provides geometric operators does not hold Peaks or a "region" bbox (Footprint would then hold one of these).
- many operations currently implemented as free functions should be moved to methods
- we should switch the container from vector<PTR(Span)> to simply vector<Span>, as Span is nonpolymorphic and at last as cheap to copy as a shared_ptr.
The output of this issue will be a set of header files that define the new interface, signed off by an SAT design review. Other issues will be responsible for implementing the new interface and fixing code broken by the change.
Robert Lupton reminds us that many operations on a Footprint should be performed on a FootprintSet, since operations on one Footprint can affect a neighbour (e.g., growing Footprint s can lead to neighbouring Footprint s merging). I suggest that the operations on a Footprint may be useful in their own right (e.g., a measurement algorithm operating on a single object), and so both should be supported.