Direct Known Subclasses:
Align, Grow

public abstract class BoxAligner extends AnchorBean<BoxAligner>
Aligns a smaller BoundingBox to fit inside a larger BoundingBox.

The smaller box may also be identically sized as the larger.

This is useful for implementing different methods for aligning / growing a smaller image to occupy a larger space. But it is not specific to images, and can be applied to any bounding-boxes.

Growth never occurs in the z-dimension, and the size in this dimension should be equal for both smaller and larger.

Author:
Owen Feehan
  • Constructor Details

    • BoxAligner

      public BoxAligner()
  • Method Details

    • align

      public BoundingBox align(BoundingBox smaller, BoundingBox larger) throws OperationFailedException
      Determines a BoundingBox to use for smaller BoundingBox so that it fits inside larger BoundingBox.

      The position and size of smaller and larger must be identical in the z-dimension.

      Parameters:
      smaller - the smaller bounding-box, relative to the minimum-corner of larger. Often this is (0, 0, 0) if it sits at the minimum corner of larger.
      larger - the larger bounding-box absolute coordinates.
      Returns:
      absolute coordinates for smaller, while remaining inside larger.
      Throws:
      OperationFailedException - if the z-dimensions are not equal, or if an unrecognized parameter or illegal state exists preventing successful alignment.
    • align

      public BoundingBox align(Extent smaller, Extent larger) throws OperationFailedException
      Determines a BoundingBox to use for a smaller Extent so that it fits inside larger Extent.

      The position and size of smaller and larger must be identical in the z-dimension.

      Parameters:
      smaller - the smaller bounding-box, relative to the minimum-corner of larger. Often this is (0, 0, 0) if it sits at the minimum corner of larger.
      larger - the larger bounding-box absolute coordinates.
      Returns:
      absolute coordinates for smaller, while remaining inside larger.
      Throws:
      OperationFailedException - if the z-dimensions are not equal, or if an unrecognized parameter or illegal state exists preventing successful alignment.
    • align

      public BoundingBox align(Extent smaller, BoundingBox larger) throws OperationFailedException
      Determines a BoundingBox to use for a smaller Extent so that it fits inside larger BoundingBox.

      The position and size of smaller and larger must be identical in the z-dimension.

      Parameters:
      smaller - the smaller bounding-box, relative to the minimum-corner of larger. Often this is (0, 0, 0) if it sits at the minimum corner of larger.
      larger - the larger bounding-box absolute coordinates.
      Returns:
      absolute coordinates for smaller, while remaining inside larger.
      Throws:
      OperationFailedException - if the z-dimensions are not equal, or if an unrecognized parameter or illegal state exists preventing successful alignment.
    • alignAfterCheck

      protected abstract BoundingBox alignAfterCheck(BoundingBox smaller, BoundingBox larger) throws OperationFailedException
      Determines a BoundingBox to use for smaller BoundingBox so that it fits inside larger BoundingBox.
      Parameters:
      smaller - the smaller bounding-box, relative to the minimum-corner of larger. Often this is (0, 0, 0) if it sits at the minimum corner of larger.
      larger - the larger bounding-box absolute coordinates.
      Returns:
      absolute coordinates for smaller, while remaining inside larger.
      Throws:
      OperationFailedException - if an unrecognized parameter or illegal state exists preventing successful alignment.
    • alignAfterCheck

      protected abstract BoundingBox alignAfterCheck(Extent smaller, Extent larger) throws OperationFailedException
      Determines a BoundingBox to use for smaller Extent so that it fits inside larger Extent.
      Parameters:
      smaller - the smaller bounding-box, relative to the minimum-corner of larger. Often this is (0, 0, 0) if it sits at the minimum corner of larger.
      larger - the larger bounding-box absolute coordinates.
      Returns:
      absolute coordinates for smaller, while remaining inside larger.
      Throws:
      OperationFailedException - if an unrecognized parameter or illegal state exists preventing successful alignment.
    • alignAfterCheck

      protected abstract BoundingBox alignAfterCheck(Extent smaller, BoundingBox larger) throws OperationFailedException
      Determines a BoundingBox to use for smaller Extent so that it fits inside larger BoundingBox.
      Parameters:
      smaller - the smaller bounding-box, relative to the minimum-corner of larger. Often this is (0, 0, 0) if it sits at the minimum corner of larger.
      larger - the larger bounding-box absolute coordinates.
      Returns:
      absolute coordinates for smaller, while remaining inside larger.
      Throws:
      OperationFailedException - if an unrecognized parameter or illegal state exists preventing successful alignment.