![]() |
Scanframe Modular Application 0.1.0
|
Class to store and manipulate a rectangle based on floating point values. More...
#include <TRectangle2D.h>
Classes | |
union | data_type |
Rectangle structure for binary storage purposes. More... | |
Public Types | |
typedef T | value_type |
Type accessible when implemented. | |
Public Member Functions | |
TRectangle2D ()=default | |
Default constructor. | |
TRectangle2D (const TRectangle2D &rect) | |
Copy constructor. | |
TRectangle2D (const TRectangle2D &&rect) noexcept | |
Move constructor. | |
TRectangle2D (T left, T bottom, T right, T top) | |
Initializing constructor. | |
TRectangle2D (std::initializer_list< T > list) | |
Initializer list constructor. | |
TRectangle2D (const TVector2D< T > &loLeft, const TVector2D< T > &upRight) | |
Initializing constructor using two points. | |
TRectangle2D & | assign (const TRectangle2D &) |
Assigns new values from the passed instance. | |
TRectangle2D & | assign (T left, T bottom, T right, T top) |
Assigns new coordinate values. | |
TRectangle2D & | assign (const TVector2D< T > &loLeft, const TVector2D< T > &upRight) |
Assigns new coordinate using two points. | |
TRectangle2D & | assignWidthHeight (T left, T bottom, T w, T h) |
Assigns new coordinates using position x, y, width and height values. | |
TRectangle2D & | assignWidthHeight (const TVector2D< T > &bottom_left, const TVector2D< T > &size) |
Assigns new coordinates using position and size vector. | |
void | clear () |
Empties the rectangle setting it to the initial state. | |
bool | isEmpty () const |
Tests if all values are near zero according the tolerance value. | |
bool | isEqual (const TRectangle2D &other, T tol=tolerance) const |
Compare passes rectangle with this instance taking the tolerance value in to account. | |
bool | operator== (const TRectangle2D &) const |
Call the isEqual() function to compare. | |
bool | operator!= (const TRectangle2D &) const |
Call the isEqual() function to compare. | |
bool | contains (const TVector2D< T > &point) const |
Returns true when the passed point represented by a vector resides within this rectangle. | |
bool | contains (const TRectangle2D &other) const |
Returns true when the passed rectangle resides within this rectangle. | |
bool | touches (const TRectangle2D &other) const |
Returns true when the passed rectangle overlaps with this rectangle. | |
TVector2D< T > | bottomLeft () const |
Gets the bottom-left corner of the rectangle as a vector. | |
TVector2D< T > | topRight () const |
Gets the top-right corner of the rectangle as a vector. | |
TVector2D< T > | bottomRight () const |
Gets the bottom-right corner of the rectangle as a vector. | |
TVector2D< T > | topLeft () const |
Gets the top-left corner of the rectangle as a vector. | |
T | width () const |
Gets the width of the rectangle. | |
T | height () const |
Gets the height of the rectangle. | |
TVector2D< T > | Size () const |
Gets the height and width of the rectangle as a vector. | |
T | area () const |
Gets the area formed by the rectangles width and height. | |
TVector2D< T > | center () const |
Gets the center of the rectangle as vector. | |
TRectangle2D & | normalize () |
Normalizes this instance so that top-right and bottom-left are correct. | |
TRectangle2D | normalized () const |
Gets a normalized instance of this instance so that top-right and bottom-left are correct. | |
TRectangle2D & | offset (T dx, T dy) |
Offsets this instance by the passed values x and y keeping the same size. | |
TRectangle2D | offsetBy (T dx, T dy) const |
Gets an instance offset by the passed values x and y keeping the same size. | |
TRectangle2D | movedTo (T x, T y) |
Gets a moved instance from this instance where left-bottom represented by the passed values x and y having the same size. | |
TRectangle2D & | moveTo (T x, T y) |
Moves this instance to a different left-bottom represented by the passed values x and y having the same size. | |
TRectangle2D & | operator+= (const TVector2D< T > &delta) |
Offsets this instance using the passed delta vector as a positive. | |
TRectangle2D & | operator-= (const TVector2D< T > &delta) |
Offsets this instance using the passed delta vector as a negative. | |
TRectangle2D & | inflate (T dx, T dy) |
Inflates this instance using the passed delta values for x and y. | |
TRectangle2D & | inflate (const TVector2D< T > &delta) |
Inflates this instance using the passed delta vector (x, y). | |
TRectangle2D | inflatedBy (T dx, T dy) const |
Gets an inflated rectangle using the passed delta values for x and y. | |
TRectangle2D | inflatedBy (const TVector2D< T > &delta) const |
Gets inflated instance using the passed delta vector (x, y). | |
TRectangle2D & | operator&= (const TRectangle2D &other) |
Sets this instance to the overlapping part of both rectangles. | |
TRectangle2D | operator& (const TRectangle2D &other) const |
Gets an instance of the overlapping part of both rectangles. | |
TRectangle2D & | operator|= (const TRectangle2D &other) |
Sets this instance to the combined rectangle containing both rectangles. | |
TRectangle2D | operator| (const TRectangle2D &other) const |
Gets an instance of the combined rectangle containing both rectangles. | |
std::string | toString () const |
Gets the string representation of the rectangle formed like '(left, bottom, right, top)'. | |
TRectangle2D & | fromString (const std::string &s) noexcept(false) |
Gets rectangle value from the string representation formed like '(left, bottom, right, top)'. Throws an exception when the string is not in the correct format. | |
Static Public Attributes | |
static constexpr auto | tolerance = TVector2D<T>::tolerance |
Tolerance for when comparing in the equal operator. Used as: std::fabs(x1 - x2) < tolerance. | |
Protected Types | |
typedef TVector2D< T >::data_type::point_type | point_type |
Use the same point type as the one of the 2D vector. | |
Protected Attributes | |
union sf::TRectangle2D::data_type | _data |
Class to store and manipulate a rectangle based on floating point values.
|
protected |
Use the same point type as the one of the 2D vector.
typedef T sf::TRectangle2D< T >::value_type |
Type accessible when implemented.
|
default |
Default constructor.
sf::TRectangle2D< T >::TRectangle2D | ( | const TRectangle2D< T > & | rect | ) |
Copy constructor.
|
noexcept |
Move constructor.
sf::TRectangle2D< T >::TRectangle2D | ( | T | left, |
T | bottom, | ||
T | right, | ||
T | top | ||
) |
Initializing constructor.
sf::TRectangle2D< T >::TRectangle2D | ( | std::initializer_list< T > | list | ) |
Initializer list constructor.
sf::TRectangle2D< T >::TRectangle2D | ( | const TVector2D< T > & | loLeft, |
const TVector2D< T > & | upRight | ||
) |
Initializing constructor using two points.
T sf::TRectangle2D< T >::area | ( | ) | const |
Gets the area formed by the rectangles width and height.
TRectangle2D & sf::TRectangle2D< T >::assign | ( | const TRectangle2D< T > & | ) |
Assigns new values from the passed instance.
TRectangle2D & sf::TRectangle2D< T >::assign | ( | const TVector2D< T > & | loLeft, |
const TVector2D< T > & | upRight | ||
) |
Assigns new coordinate using two points.
TRectangle2D & sf::TRectangle2D< T >::assign | ( | T | left, |
T | bottom, | ||
T | right, | ||
T | top | ||
) |
Assigns new coordinate values.
TRectangle2D & sf::TRectangle2D< T >::assignWidthHeight | ( | const TVector2D< T > & | bottom_left, |
const TVector2D< T > & | size | ||
) |
Assigns new coordinates using position and size vector.
TRectangle2D & sf::TRectangle2D< T >::assignWidthHeight | ( | T | left, |
T | bottom, | ||
T | w, | ||
T | h | ||
) |
Assigns new coordinates using position x, y, width and height values.
TVector2D< T > sf::TRectangle2D< T >::bottomLeft | ( | ) | const |
Gets the bottom-left corner of the rectangle as a vector.
TVector2D< T > sf::TRectangle2D< T >::bottomRight | ( | ) | const |
Gets the bottom-right corner of the rectangle as a vector.
TVector2D< T > sf::TRectangle2D< T >::center | ( | ) | const |
Gets the center of the rectangle as vector.
void sf::TRectangle2D< T >::clear | ( | ) |
Empties the rectangle setting it to the initial state.
bool sf::TRectangle2D< T >::contains | ( | const TRectangle2D< T > & | other | ) | const |
Returns true when the passed rectangle resides within this rectangle.
bool sf::TRectangle2D< T >::contains | ( | const TVector2D< T > & | point | ) | const |
Returns true when the passed point represented by a vector resides within this rectangle.
TRectangle2D & sf::TRectangle2D< T >::fromString | ( | const std::string & | s | ) |
Gets rectangle value from the string representation formed like '(left, bottom, right, top)'. Throws an exception when the string is not in the correct format.
std::invalid_argument |
T sf::TRectangle2D< T >::height | ( | ) | const |
Gets the height of the rectangle.
TRectangle2D & sf::TRectangle2D< T >::inflate | ( | const TVector2D< T > & | delta | ) |
Inflates this instance using the passed delta vector (x, y).
TRectangle2D & sf::TRectangle2D< T >::inflate | ( | T | dx, |
T | dy | ||
) |
Inflates this instance using the passed delta values for x and y.
TRectangle2D sf::TRectangle2D< T >::inflatedBy | ( | const TVector2D< T > & | delta | ) | const |
Gets inflated instance using the passed delta vector (x, y).
TRectangle2D sf::TRectangle2D< T >::inflatedBy | ( | T | dx, |
T | dy | ||
) | const |
Gets an inflated rectangle using the passed delta values for x and y.
bool sf::TRectangle2D< T >::isEmpty | ( | ) | const |
bool sf::TRectangle2D< T >::isEqual | ( | const TRectangle2D< T > & | other, |
T | tol = tolerance |
||
) | const |
TRectangle2D sf::TRectangle2D< T >::movedTo | ( | T | x, |
T | y | ||
) |
Gets a moved instance from this instance where left-bottom represented by the passed values x and y having the same size.
TRectangle2D & sf::TRectangle2D< T >::moveTo | ( | T | x, |
T | y | ||
) |
Moves this instance to a different left-bottom represented by the passed values x and y having the same size.
TRectangle2D & sf::TRectangle2D< T >::normalize | ( | ) |
Normalizes this instance so that top-right and bottom-left are correct.
TRectangle2D sf::TRectangle2D< T >::normalized | ( | ) | const |
Gets a normalized instance of this instance so that top-right and bottom-left are correct.
TRectangle2D & sf::TRectangle2D< T >::offset | ( | T | dx, |
T | dy | ||
) |
Offsets this instance by the passed values x and y keeping the same size.
TRectangle2D sf::TRectangle2D< T >::offsetBy | ( | T | dx, |
T | dy | ||
) | const |
Gets an instance offset by the passed values x and y keeping the same size.
bool sf::TRectangle2D< T >::operator!= | ( | const TRectangle2D< T > & | ) | const |
TRectangle2D sf::TRectangle2D< T >::operator& | ( | const TRectangle2D< T > & | other | ) | const |
Gets an instance of the overlapping part of both rectangles.
TRectangle2D & sf::TRectangle2D< T >::operator&= | ( | const TRectangle2D< T > & | other | ) |
Sets this instance to the overlapping part of both rectangles.
TRectangle2D & sf::TRectangle2D< T >::operator+= | ( | const TVector2D< T > & | delta | ) |
Offsets this instance using the passed delta vector as a positive.
TRectangle2D & sf::TRectangle2D< T >::operator-= | ( | const TVector2D< T > & | delta | ) |
Offsets this instance using the passed delta vector as a negative.
bool sf::TRectangle2D< T >::operator== | ( | const TRectangle2D< T > & | ) | const |
TRectangle2D sf::TRectangle2D< T >::operator| | ( | const TRectangle2D< T > & | other | ) | const |
Gets an instance of the combined rectangle containing both rectangles.
TRectangle2D & sf::TRectangle2D< T >::operator|= | ( | const TRectangle2D< T > & | other | ) |
Sets this instance to the combined rectangle containing both rectangles.
TVector2D< T > sf::TRectangle2D< T >::Size | ( | ) | const |
Gets the height and width of the rectangle as a vector.
TVector2D< T > sf::TRectangle2D< T >::topLeft | ( | ) | const |
Gets the top-left corner of the rectangle as a vector.
TVector2D< T > sf::TRectangle2D< T >::topRight | ( | ) | const |
Gets the top-right corner of the rectangle as a vector.
std::string sf::TRectangle2D< T >::toString | ( | ) | const |
Gets the string representation of the rectangle formed like '(left, bottom, right, top)'.
bool sf::TRectangle2D< T >::touches | ( | const TRectangle2D< T > & | other | ) | const |
Returns true when the passed rectangle overlaps with this rectangle.
T sf::TRectangle2D< T >::width | ( | ) | const |
Gets the width of the rectangle.
|
protected |
|
staticconstexpr |
Tolerance for when comparing in the equal operator. Used as: std::fabs(x1 - x2) < tolerance.