lsst.geom
15.0-1-g417ea41+5
|
An integer coordinate rectangle. More...
#include <Box.h>
Public Types | |
enum | EdgeHandlingEnum { EXPAND, SHRINK } |
typedef Point2I | Point |
typedef Extent2I | Extent |
typedef int | Element |
Public Member Functions | |
Box2I () | |
Construct an empty box. More... | |
Box2I (Point2I const &minimum, Point2I const &maximum, bool invert=true) | |
Construct a box from its minimum and maximum points. More... | |
Box2I (Point2I const &minimum, Extent2I const &dimensions, bool invert=true) | |
Construct a box from its minimum point and dimensions. More... | |
Box2I (Box2D const &other, EdgeHandlingEnum edgeHandling=EXPAND) | |
Construct an integer box from a floating-point box. More... | |
Box2I (Box2I const &)=default | |
Standard copy constructor. More... | |
Box2I (Box2I &&)=default | |
~Box2I ()=default | |
void | swap (Box2I &other) |
Box2I & | operator= (Box2I const &)=default |
Standard assignment operator. More... | |
Box2I & | operator= (Box2I &&)=default |
ndarray::View< boost::fusion::vector2< ndarray::index::Range, ndarray::index::Range > > | getSlices () const |
Return slices to extract the box's region from an ndarray::Array. More... | |
bool | isEmpty () const |
Return true if the box contains no points. More... | |
bool | contains (Point2I const &point) const |
Return true if the box contains the point. More... | |
bool | contains (Box2I const &other) const |
Return true if all points contained by other are also contained by this. More... | |
bool | overlaps (Box2I const &other) const |
Return true if any points in other are also in this. More... | |
void | grow (int buffer) |
Increase the size of the box by the given buffer amount in all directions. More... | |
void | grow (Extent2I const &buffer) |
Increase the size of the box by the given buffer amount in each direction. More... | |
void | shift (Extent2I const &offset) |
Shift the position of the box by the given offset. More... | |
void | flipLR (int xExtent) |
Flip a bounding box about the y-axis given a parent box of extent (xExtent). More... | |
void | flipTB (int yExtent) |
Flip a bounding box about the x-axis given a parent box of extent (yExtent). More... | |
void | include (Point2I const &point) |
Expand this to ensure that this->contains(point). More... | |
void | include (Box2I const &other) |
Expand this to ensure that this->contains(other). More... | |
void | clip (Box2I const &other) |
Shrink this to ensure that other.contains(*this). More... | |
bool | operator== (Box2I const &other) const |
Compare two boxes for equality. More... | |
bool | operator!= (Box2I const &other) const |
Compare two boxes for equality. More... | |
std::vector< Point2I > | getCorners () const |
Get the corner points. More... | |
std::string | toString () const |
Min/Max Accessors | |
Return the minimum and maximum coordinates of the box (inclusive). | |
Point2I const | getMin () const |
int | getMinX () const |
int | getMinY () const |
Point2I const | getMax () const |
int | getMaxX () const |
int | getMaxY () const |
Begin/End Accessors | |
Return STL-style begin (inclusive) and end (exclusive) coordinates for the box. | |
Point2I const | getBegin () const |
int | getBeginX () const |
int | getBeginY () const |
Point2I const | getEnd () const |
int | getEndX () const |
int | getEndY () const |
Size Accessors | |
Return the size of the box in pixels. | |
Extent2I const | getDimensions () const |
int | getWidth () const |
int | getHeight () const |
int | getArea () const |
An integer coordinate rectangle.
Box2I is an inclusive box that represents a rectangular region of pixels. A box never has negative dimensions; the empty box is defined to have zero-size dimensions, and is treated as though it does not have a well-defined position (regardless of the return value of getMin() or getMax() for an empty box).
typedef int lsst::geom::Box2I::Element |
typedef Extent2I lsst::geom::Box2I::Extent |
typedef Point2I lsst::geom::Box2I::Point |
Construct a box from its minimum and maximum points.
[in] | minimum | Minimum (lower left) coordinate (inclusive). |
[in] | maximum | Maximum (upper right) coordinate (inclusive). |
[in] | invert | If true (default), swap the minimum and maximum coordinates if minimum > maximum instead of creating an empty box. |
lsst::geom::Box2I::Box2I | ( | Point2I const & | minimum, |
Extent2I const & | dimensions, | ||
bool | invert = true |
||
) |
Construct a box from its minimum point and dimensions.
[in] | minimum | Minimum (lower left) coordinate. |
[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 an integer box from a floating-point box.
Floating-point to integer 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. Converting a floating-point box to an integer box thus requires a choice on how to handle pixels which are only partially contained by the input floating-point box.
[in] | other | A floating-point box to convert. |
[in] | edgeHandling | If EXPAND, the integer box will contain any pixels that overlap the floating-point box. If SHRINK, the integer box will contain only pixels completely contained by the floating-point box. |
|
default |
Standard copy constructor.
|
default |
|
default |
void lsst::geom::Box2I::clip | ( | Box2I const & | other | ) |
bool lsst::geom::Box2I::contains | ( | Point2I const & | point | ) | const |
bool lsst::geom::Box2I::contains | ( | Box2I const & | other | ) | const |
void lsst::geom::Box2I::flipLR | ( | int | xExtent | ) |
void lsst::geom::Box2I::flipTB | ( | int | yExtent | ) |
std::vector< Point2I > lsst::geom::Box2I::getCorners | ( | ) | const |
|
inline |
ndarray::View< boost::fusion::vector2< ndarray::index::Range, ndarray::index::Range > > lsst::geom::Box2I::getSlices | ( | ) | const |
|
inline |
void lsst::geom::Box2I::grow | ( | Extent2I const & | buffer | ) |
void lsst::geom::Box2I::include | ( | Point2I const & | point | ) |
void lsst::geom::Box2I::include | ( | Box2I const & | other | ) |
|
inline |
bool lsst::geom::Box2I::operator!= | ( | Box2I const & | other | ) | const |
bool lsst::geom::Box2I::operator== | ( | Box2I const & | other | ) | const |
bool lsst::geom::Box2I::overlaps | ( | Box2I const & | other | ) | const |
void lsst::geom::Box2I::shift | ( | Extent2I const & | offset | ) |
|
inline |