|
Ocean
|
This class implements a 2D bounding box with pixel precision. More...
#include <PixelBoundingBox.h>
Public Member Functions | |
| PixelBoundingBoxT () | |
| Creates a empty bounding box. | |
| PixelBoundingBoxT (const PixelBoundingBoxT< T > &boundingBox) | |
| Copy constructor. | |
| PixelBoundingBoxT (const PixelPositionT< T > &point) | |
| Creates a bounding box covering one point only. | |
| PixelBoundingBoxT (const std::vector< PixelPositionT< T > > &points) | |
| Creates a bounding box covering several points. | |
| PixelBoundingBoxT (const T left, const T top, const T right, const T bottom) | |
| Creates a bounding box with specified dimension. | |
| PixelBoundingBoxT (const PixelPositionT< T > &topLeft, const unsigned int width, const unsigned int height) | |
| Creates a bounding box by a given top left position and a width and height of the bounding box. | |
| PixelBoundingBoxT (const PixelPositionT< T > &point0, const PixelPositionT< T > &point1) | |
| Creates a bounding box covering two points. | |
| T | left () const |
| Returns the left (including) pixel position of this bounding box. | |
| T | top () const |
| Returns the top (including) pixel position of this bounding box. | |
| T | right () const |
| Returns the right (including) pixel position of this bounding box. | |
| T | rightEnd () const |
| Returns the right (excluding) pixel position of this bounding box. | |
| T | bottom () const |
| Returns the bottom (including) position of this bounding box. | |
| T | bottomEnd () const |
| Returns the bottom (excluding) pixel position of this bounding box. | |
| PixelPositionT< T > | topLeft () const |
| Returns the top left corner of this bounding box. | |
| PixelPositionT< T > | topRight () const |
| Returns the top right corner of this bounding box. | |
| PixelPositionT< T > | bottomLeft () const |
| Returns the bottom left corner of this bounding box. | |
| PixelPositionT< T > | bottomRight () const |
| Returns the bottom right corner of this bounding box. | |
| unsigned int | width () const |
| Returns the width (the number of horizontal including pixels) of this bounding box. | |
| unsigned int | height () const |
| Returns the height (the number of vertical including pixels) of this bounding box. | |
| unsigned int | size () const |
| Returns the area (the number of including pixels) this bounding box covers. | |
| bool | isInside (const PixelPositionT< T > &point) const |
| Returns whether a given point lies inside this bounding box. | |
| bool | isInside (const PixelBoundingBoxT< T > &boundingBox) const |
| Returns whether a given bounding box lies entirely inside this bounding box. | |
| bool | hasIntersection (const PixelBoundingBoxT< T > &boundingBox) const |
| Returns whether a given bounding box has an intersection with this bounding box. | |
| bool | isTouching (const PixelBoundingBoxT< T > &boundingBox, const bool useNeighborhood8) const |
| Returns whether a given bounding box is touching this bounding box. | |
| PixelBoundingBoxT< T > | extended (const unsigned int pixels, const T minLeft, const T minTop, const T maxRight, const T maxBottom) const |
| Returns a new bounding box by extending this bounding box with a given number of pixel in each direction. | |
| bool | isValid () const |
| Returns whether this bounding box covers a valid pixel area. | |
| PixelBoundingBoxT< T > & | operator+= (const PixelPositionT< T > &point) |
| Adds a new point to the bounding box. | |
| PixelBoundingBoxT< T > & | operator= (const PixelBoundingBoxT< T > &other)=default |
| Assignment operator override to match copy constructor. | |
| bool | operator== (const PixelBoundingBoxT< T > &box) const |
| Returns whether two bounding boxes are equal. | |
| bool | operator!= (const PixelBoundingBoxT< T > &box) const |
| Returns whether two bounding boxes are not equal. | |
| PixelBoundingBoxT< T > | operator* (const T factor) const |
| Multiplies this bounding box by a specified scalar (multiplies left, top, right, and bottom location by the scalar). | |
| PixelBoundingBoxT< T > & | operator*= (const T factor) |
| Multiplies this bounding box by a specified scalar (multiplies left, top, right, and bottom location by the scalar). | |
| PixelBoundingBoxT< T > | operator/ (const T factor) const |
| Divides this bounding box by a specified scalar (divides left, top, right, and bottom location by the scalar). | |
| PixelBoundingBoxT< T > & | operator/= (const T factor) |
| Divides this bounding box by a specified scalar (divides left, top, right, and bottom location by the scalar). | |
| PixelBoundingBoxT< T > | operator|| (const PixelBoundingBoxT< T > &box) const |
| Returns the union of two bounding boxes. | |
| PixelBoundingBoxT< T > | operator&& (const PixelBoundingBoxT< T > &box) const |
| Returns the intersection of two bounding boxes. | |
| size_t | operator() (const PixelBoundingBoxT< T > &boundingBox) const |
| Hash function. | |
| operator bool () const | |
| Returns whether this bounding box covers a valid pixel area. | |
Private Attributes | |
| T | left_ |
| Left (including) pixel position of this bounding box. | |
| T | top_ |
| Top (including) pixel position of this bounding box. | |
| T | right_ |
| Right (including) pixel position of this bounding box. | |
| T | bottom_ |
| Bottom (including) pixel position of this bounding box. | |
This class implements a 2D bounding box with pixel precision.
|
inline |
Creates a empty bounding box.
|
inline |
Copy constructor.
| boundingBox | The bounding box to copy |
|
inlineexplicit |
Creates a bounding box covering one point only.
| point | The point the box will cover |
|
inlineexplicit |
Creates a bounding box covering several points.
| points | The points the box will cover |
|
inline |
Creates a bounding box with specified dimension.
| left | Left (including) pixel position |
| top | Top (including) pixel position |
| right | Right (including) pixel position, with range [left, infinity) to create a valid bounding box |
| bottom | Bottom (including) pixel position, with range [top, infinity) to create a valid bounding box |
|
inline |
Creates a bounding box by a given top left position and a width and height of the bounding box.
| topLeft | Top left position of the box |
| width | The width of the bounding box in pixel with range [1, infinity) |
| height | The height of the bounding box in pixel, with range [1, infinity) |
|
inline |
Creates a bounding box covering two points.
| point0 | The first point that will be converted by the bounding box |
| point1 | The second point that will be converted by the bounding box |
|
inline |
Returns the bottom (including) position of this bounding box.
|
inline |
Returns the bottom (excluding) pixel position of this bounding box.
|
inline |
Returns the bottom left corner of this bounding box.
|
inline |
Returns the bottom right corner of this bounding box.
|
inline |
Returns a new bounding box by extending this bounding box with a given number of pixel in each direction.
| pixels | Number of pixels to be added to each bounding box boundary |
| minLeft | Minimal (including) left boundary, with minLeft <= left() |
| minTop | Minimal (including) top boundary, with minTop <= top() |
| maxRight | Minimal (including) right boundary, with maxRight >= right() |
| maxBottom | Minimal (including) bottom boundary, with maxBottom >= bottom() |
|
inline |
Returns whether a given bounding box has an intersection with this bounding box.
| boundingBox | The bounding box to be checked, must be valid |
|
inline |
Returns the height (the number of vertical including pixels) of this bounding box.
|
inline |
Returns whether a given bounding box lies entirely inside this bounding box.
| boundingBox | The bounding box to be checked, must be valid |
|
inline |
Returns whether a given point lies inside this bounding box.
| point | The point to be checked, must be valid |
|
inline |
Returns whether a given bounding box is touching this bounding box.
Two bounding boxes are touching if both boxes are intersecting or if both boxes have a touching edge.
When two bounding boxes are touching at the corners, the 'useNeighborhood4' property defines whether both boxes count as touching or not.
| boundingBox | The bounding box to be checked, must be valid |
| useNeighborhood8 | True, to use a 8-neighborhood during the check; False, to use an 4-neighborhood during the check |
|
inline |
Returns whether this bounding box covers a valid pixel area.
|
inline |
Returns the left (including) pixel position of this bounding box.
|
inlineexplicit |
Returns whether this bounding box covers a valid pixel area.
|
inline |
Returns whether two bounding boxes are not equal.
| box | Second bounding box |
|
inline |
Returns the intersection of two bounding boxes.
Beware: The intersection between a valid and an invalid bounding box is an invalid bounding box.
| box | Second bounding box |
|
inline |
Hash function.
| boundingBox | The bounding box for which the hash value will be determined |
|
inline |
Multiplies this bounding box by a specified scalar (multiplies left, top, right, and bottom location by the scalar).
| factor | The multiplication factor, with range (-infinity, infinity) |
|
inline |
Multiplies this bounding box by a specified scalar (multiplies left, top, right, and bottom location by the scalar).
| factor | The multiplication factor, with range (-infinity, infinity) |
|
inline |
Adds a new point to the bounding box.
If the point lies inside the bounding box the box is unchanged, otherwise the box will be extended
| point | The point extending the box |
|
inline |
Divides this bounding box by a specified scalar (divides left, top, right, and bottom location by the scalar).
| factor | The division factor, with range (-infinity, infinity) \ {0} |
|
inline |
Divides this bounding box by a specified scalar (divides left, top, right, and bottom location by the scalar).
| factor | The division factor, with range (-infinity, infinity) \ {0} |
|
inlinedefault |
Assignment operator override to match copy constructor.
|
inline |
Returns whether two bounding boxes are equal.
| box | Second bounding box |
|
inline |
Returns the union of two bounding boxes.
| box | Second bounding box |
|
inline |
Returns the right (including) pixel position of this bounding box.
|
inline |
Returns the right (excluding) pixel position of this bounding box.
|
inline |
Returns the area (the number of including pixels) this bounding box covers.
If this bounding box is invalid, than zero is returned.
|
inline |
Returns the top (including) pixel position of this bounding box.
|
inline |
Returns the top left corner of this bounding box.
|
inline |
Returns the top right corner of this bounding box.
|
inline |
Returns the width (the number of horizontal including pixels) of this bounding box.
|
private |
Bottom (including) pixel position of this bounding box.
|
private |
Left (including) pixel position of this bounding box.
|
private |
Right (including) pixel position of this bounding box.
|
private |
Top (including) pixel position of this bounding box.