Utility class for manipulating 2D axis aligned rectangles. More...
#include <Rect.hpp>
Public Member Functions | |
Rect () | |
Default constructor. More... | |
Rect (T rectLeft, T rectTop, T rectWidth, T rectHeight) | |
Construct the rectangle from its coordinates. More... | |
Rect (const Vector2< T > &position, const Vector2< T > &size) | |
Construct the rectangle from position and size. More... | |
template<typename U > | |
Rect (const Rect< U > &rectangle) | |
Construct the rectangle from another type of rectangle. More... | |
bool | contains (T x, T y) const |
Check if a point is inside the rectangle's area. More... | |
bool | contains (const Vector2< T > &point) const |
Check if a point is inside the rectangle's area. More... | |
bool | intersects (const Rect< T > &rectangle) const |
Check the intersection between two rectangles. More... | |
bool | intersects (const Rect< T > &rectangle, Rect< T > &intersection) const |
Check the intersection between two rectangles. More... | |
Public Attributes | |
T | left |
Left coordinate of the rectangle. More... | |
T | top |
Top coordinate of the rectangle. More... | |
T | width |
Width of the rectangle. More... | |
T | height |
Height of the rectangle. More... | |
Related Functions | |
(Note that these are not member functions.) | |
template<typename T > | |
bool | operator== (const Rect< T > &left, const Rect< T > &right) |
Overload of binary operator ==. More... | |
template<typename T > | |
bool | operator!= (const Rect< T > &left, const Rect< T > &right) |
Overload of binary operator !=. More... | |
Detailed Description
template<typename T>
class sf::Rect< T >
Utility class for manipulating 2D axis aligned rectangles.
A rectangle is defined by its top-left corner and its size.
It is a very simple class defined for convenience, so its member variables (left, top, width and height) are public and can be accessed directly, just like the vector classes (Vector2 and Vector3).
To keep things simple, sf::Rect doesn't define functions to emulate the properties that are not directly members (such as right, bottom, center, etc.), it rather only provides intersection functions.
sf::Rect uses the usual rules for its boundaries:
- The left and top edges are included in the rectangle's area
- The right (left + width) and bottom (top + height) edges are excluded from the rectangle's area
This means that sf::IntRect(0, 0, 1, 1) and sf::IntRect(1, 1, 1, 1) don't intersect.
sf::Rect is a template and may be used with any numeric type, but for simplicity the instantiations used by SFML are typedef'd:
- sf::Rect<int> is sf::IntRect
- sf::Rect<float> is sf::FloatRect
So that you don't have to care about the template syntax.
Usage example:
Constructor & Destructor Documentation
Default constructor.
Creates an empty rectangle (it is equivalent to calling Rect(0, 0, 0, 0)).
Construct the rectangle from its coordinates.
Be careful, the last two parameters are the width and height, not the right and bottom coordinates!
- Parameters
-
rectLeft Left coordinate of the rectangle rectTop Top coordinate of the rectangle rectWidth Width of the rectangle rectHeight Height of the rectangle
sf::Rect< T >::Rect | ( | const Vector2< T > & | position, |
const Vector2< T > & | size | ||
) |
Construct the rectangle from position and size.
Be careful, the last parameter is the size, not the bottom-right corner!
- Parameters
-
position Position of the top-left corner of the rectangle size Size of the rectangle
|
explicit |
Construct the rectangle from another type of rectangle.
This constructor doesn't replace the copy constructor, it's called only when U != T. A call to this constructor will fail to compile if U is not convertible to T.
- Parameters
-
rectangle Rectangle to convert
Member Function Documentation
bool sf::Rect< T >::contains | ( | T | x, |
T | y | ||
) | const |
Check if a point is inside the rectangle's area.
This check is non-inclusive. If the point lies on the edge of the rectangle, this function will return false.
- Parameters
-
x X coordinate of the point to test y Y coordinate of the point to test
- Returns
- True if the point is inside, false otherwise
- See also
- intersects
Check if a point is inside the rectangle's area.
This check is non-inclusive. If the point lies on the edge of the rectangle, this function will return false.
- Parameters
-
point Point to test
- Returns
- True if the point is inside, false otherwise
- See also
- intersects
Check the intersection between two rectangles.
- Parameters
-
rectangle Rectangle to test
- Returns
- True if rectangles overlap, false otherwise
- See also
- contains
bool sf::Rect< T >::intersects | ( | const Rect< T > & | rectangle, |
Rect< T > & | intersection | ||
) | const |
Check the intersection between two rectangles.
This overload returns the overlapped rectangle in the intersection parameter.
- Parameters
-
rectangle Rectangle to test intersection Rectangle to be filled with the intersection
- Returns
- True if rectangles overlap, false otherwise
- See also
- contains
Friends And Related Function Documentation
Overload of binary operator !=.
This operator compares strict difference between two rectangles.
- Parameters
-
left Left operand (a rectangle) right Right operand (a rectangle)
- Returns
- True if left is not equal to right
Overload of binary operator ==.
This operator compares strict equality between two rectangles.
- Parameters
-
left Left operand (a rectangle) right Right operand (a rectangle)
- Returns
- True if left is equal to right
Member Data Documentation
T sf::Rect< T >::height |
T sf::Rect< T >::left |
T sf::Rect< T >::top |
T sf::Rect< T >::width |
The documentation for this class was generated from the following file: