LSSTApplications
10.0-2-g4f67435,11.0.rc2+1,11.0.rc2+12,11.0.rc2+3,11.0.rc2+4,11.0.rc2+5,11.0.rc2+6,11.0.rc2+7,11.0.rc2+8
LSSTDataManagementBasePackage
|
A floating-point coordinate rectangle geometry. More...
#include <Box.h>
Public Types | |
typedef Point2D | Point |
typedef Extent2D | Extent |
Public Member Functions | |
Box2D () | |
Construct an empty box. More... | |
Box2D (Point2D const &minimum, Point2D const &maximum, bool invert=true) | |
Construct a box from its minimum and maximum points. More... | |
Box2D (Point2D const &minimum, Extent2D const &dimensions, bool invert=true) | |
Construct a box from its minimum point and dimensions. More... | |
Box2D (Box2I const &other) | |
Construct a floating-point box from an integer box. More... | |
Box2D (Box2D const &other) | |
Standard copy constructor. More... | |
void | swap (Box2D &other) |
Box2D & | operator= (Box2D const &other) |
Standard assignment operator. More... | |
bool | isEmpty () const |
Return true if the box contains no points. More... | |
bool | contains (Point2D const &point) const |
Return true if the box contains the point. More... | |
bool | contains (Box2D const &other) const |
Return true if all points contained by other are also contained by this. More... | |
bool | overlaps (Box2D const &other) const |
Return true if any points in other are also in this. More... | |
void | grow (double buffer) |
Increase the size of the box by the given buffer amount in all directions. More... | |
void | grow (Extent2D const &buffer) |
Increase the size of the box by the given buffer amount in each direction. More... | |
void | shift (Extent2D const &offset) |
Shift the position of the box by the given offset. More... | |
void | flipLR (float xExtent) |
Flip a bounding box about the y-axis given a parent box of extent (xExtent). More... | |
void | flipTB (float yExtent) |
Flip a bounding box about the x-axis given a parent box of extent (yExtent). More... | |
void | include (Point2D const &point) |
Expand this to ensure that this->contains(point). More... | |
void | include (Box2D const &other) |
Expand this to ensure that this->contains(other). More... | |
void | clip (Box2D const &other) |
Shrink this to ensure that other.contains(*this). More... | |
bool | operator== (Box2D const &other) const |
Compare two boxes for equality. More... | |
bool | operator!= (Box2D const &other) const |
Compare two boxes for equality. More... | |
std::vector< Point2D > | getCorners () const |
std::string | toString () const |
Min/Max Accessors | |
Return the minimum (inclusive) and maximum (exclusive) coordinates of the box. | |
Point2D const | getMin () const |
double | getMinX () const |
double | getMinY () const |
Point2D const | getMax () const |
double | getMaxX () const |
double | getMaxY () const |
Size Accessors | |
Return the size of the box. | |
Extent2D const | getDimensions () const |
double | getWidth () const |
double | getHeight () const |
double | getArea () const |
Center Accessors | |
Return the center coordinate of the box. | |
Point2D const | getCenter () const |
double | getCenterX () const |
double | getCenterY () const |
Static Public Attributes | |
static double const | EPSILON |
static double const | INVALID |
Value used to specify undefined coordinate values. More... | |
Private Member Functions | |
void | _tweakMax (int n) |
Private Attributes | |
Point2D | _minimum |
Point2D | _maximum |
A floating-point coordinate rectangle geometry.
Box2D is a half-open (minimum is inclusive, maximum is exclusive) box. A box never has negative dimensions; the empty box is defined to zero-size dimensions and its minimum and maximum values set to NaN. Only the empty box may have zero-size dimensions.
typedef Extent2D lsst.afw.geom::Box2D::Extent |
typedef Point2D lsst.afw.geom::Box2D::Point |
lsst.afw.geom::Box2D::Box2D | ( | ) |
Construct an empty box.
lsst.afw.geom::Box2D::Box2D | ( | Point2D const & | minimum, |
Point2D const & | maximum, | ||
bool | invert = true |
||
) |
Construct a box from its minimum and maximum points.
If any(minimum == maximum), the box will always be empty (even if invert==true).
[in] | minimum | Minimum (lower left) coordinate (inclusive). |
[in] | maximum | Maximum (upper right) coordinate (exclusive). |
[in] | invert | If true (default), swap the minimum and maximum coordinates if minimum > maximum instead of creating an empty box. |
lsst.afw.geom::Box2D::Box2D | ( | Point2D const & | minimum, |
Extent2D const & | dimensions, | ||
bool | invert = true |
||
) |
Construct a box from its minimum point and dimensions.
[in] | minimum | Minimum (lower left) coordinate (inclusive). |
[in] | dimensions | Box dimensions. If either dimension coordinate is 0, the box will be empty. |
[in] | invert | If true (default), invert any negative dimensions instead of creating an empty box. |
|
explicit |
Construct a floating-point box from an integer box.
Integer to floating-point box conversion is based on the concept that a pixel is not an infinitesimal point but rather a square of unit size centered on integer-valued coordinates. While the output floating-point box thus has the same dimensions as the input integer box, its minimum/maximum coordinates are 0.5 smaller/greater.
|
inline |
void lsst.afw.geom::Box2D::clip | ( | Box2D const & | other | ) |
Shrink this to ensure that other.contains(*this).
bool lsst.afw.geom::Box2D::contains | ( | Point2D const & | point | ) | const |
Return true if the box contains the point.
bool lsst.afw.geom::Box2D::contains | ( | Box2D const & | other | ) | const |
Return true if all points contained by other are also contained by this.
An empty box is contained by every other box, including other empty boxes.
void lsst.afw.geom::Box2D::flipLR | ( | float | xExtent | ) |
Flip a bounding box about the y-axis given a parent box of extent (xExtent).
void lsst.afw.geom::Box2D::flipTB | ( | float | yExtent | ) |
Flip a bounding box about the x-axis given a parent box of extent (yExtent).
|
inline |
Definition at line 373 of file Box.h.
std::vector<Point2D> lsst.afw.geom::Box2D::getCorners | ( | ) | const |
Get the corner points
The order is counterclockise, starting from the lower left corner, i.e.: (minX, minY), (maxX, maxY), (maxX, maxX), (minX, maxY)
|
inline |
|
inline |
|
inline |
|
inline |
Increase the size of the box by the given buffer amount in all directions.
If a negative buffer is passed and the final size of the box is less than or equal to zero, the box will be made empty.
Definition at line 404 of file Box.h.
void lsst.afw.geom::Box2D::grow | ( | Extent2D const & | buffer | ) |
Increase the size of the box by the given buffer amount in each direction.
If a negative buffer is passed and the final size of the box is less than or equal to zero, the box will be made empty.
void lsst.afw.geom::Box2D::include | ( | Point2D const & | point | ) |
Expand this to ensure that this->contains(point).
If the point sets a new maximum value for the box, the maximum coordinate will be adjusted to ensure the point is actually contained by the box instead of sitting on its exclusive upper edge.
void lsst.afw.geom::Box2D::include | ( | Box2D const & | other | ) |
Expand this to ensure that this->contains(other).
|
inline |
bool lsst.afw.geom::Box2D::operator!= | ( | Box2D const & | other | ) | const |
Compare two boxes for equality.
All empty boxes are equal.
bool lsst.afw.geom::Box2D::operator== | ( | Box2D const & | other | ) | const |
Compare two boxes for equality.
All empty boxes are equal.
bool lsst.afw.geom::Box2D::overlaps | ( | Box2D const & | other | ) | const |
Return true if any points in other are also in this.
Any overlap operation involving an empty box returns false.
void lsst.afw.geom::Box2D::shift | ( | Extent2D const & | offset | ) |
Shift the position of the box by the given offset.
|
inline |
|
static |
|
static |