Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-14690

Add ability to construct centered boxes

    Details

    • Type: Improvement
    • Status: Done
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: geom
    • Labels:
      None
    • Templates:
    • Story Points:
      2
    • Sprint:
      AP F18-1
    • Team:
      Alert Production

      Description

      As discussed on GitHub, it would be useful if Box2I and Box2D had methods for creating boxes centered on a particular (fractional) point.

      Given that the Box* classes cannot afford more constructors, and we still don't have a good way to discover functions, this capability is best implemented as static factory methods:

      Box2I Box2I::makeCenteredBox(Point2D const& center, Box2I::Extent const& size);
      Box2D Box2D::makeCenteredBox(Point2D const& center, Box2D::Extent const& size);
      

      I do not plan to add a Box2I::makeCenteredBox(Point2I, Extent) method: I'm worried that it might lead to confusion with (Point2D, Extent), and as Jim Bosch pointed out it's not clear what the best behavior is for even-sized boxes.

      The desired functionality is already present in the implementation for Exposure::getCutout, so this work is just a matter of factoring the code, writing new unit tests, and being very careful about the distinctions between Box2I and Box2D.

        Attachments

          Container Issues

            Issue Links

              Activity

                People

                • Assignee:
                  krzys Krzysztof Findeisen
                  Reporter:
                  krzys Krzysztof Findeisen
                  Reviewers:
                  Jim Bosch
                  Watchers:
                  Jim Bosch, Krzysztof Findeisen, Russell Owen
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  3 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:

                    Summary Panel