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

Add ability to construct centered boxes

    XMLWordPrintable

Details

    • Improvement
    • Status: Done
    • Resolution: Done
    • None
    • geom
    • None
    • 2
    • AP F18-1
    • 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 jbosch 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

        Issue Links

          Activity

            Hi jbosch, could you review these changes and let me know if everything fits normal Box usage? Thanks!

            krzys Krzysztof Findeisen added a comment - Hi jbosch , could you review these changes and let me know if everything fits normal Box usage? Thanks!
            jbosch Jim Bosch added a comment -

            Looks good - thanks for fixing the documentation on the existing constructors.

            I think it might be best to drop the invert arg or change its defaults - more on that in the PRs.

             

            jbosch Jim Bosch added a comment - Looks good - thanks for fixing the documentation on the existing constructors. I think it might be best to drop the invert arg or change its defaults - more on that in the PRs.  

            I'll wait for the re-adoption of RFC-324, and make the interface for makeCenteredBox match whatever is agreed on for the constructors.

            krzys Krzysztof Findeisen added a comment - I'll wait for the re-adoption of RFC-324 , and make the interface for makeCenteredBox match whatever is agreed on for the constructors.

            Per the resolution of RFC-324, makeCenteredBox will not have an invert parameter, and will silently return the empty box when passed negative dimensions.

            krzys Krzysztof Findeisen added a comment - Per the resolution of RFC-324 , makeCenteredBox will not have an invert parameter, and will silently return the empty box when passed negative dimensions.

            People

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

              Dates

                Created:
                Updated:
                Resolved:

                Jenkins

                  No builds found.