JUCE: Rectangle< ValueType > Class Template Reference

JUCE

Public Member Functions | Static Public Member Functions | List of all members
Rectangle< ValueType > Class Template Reference
juce_graphics » geometry

Manages a rectangle and allows geometric operations to be performed on it. More...

`#include <juce_Rectangle.h>`

## Public Member Functions
| Rectangle ()=default
| Creates a rectangle of zero size. More...
| Rectangle (const Rectangle &)=default
| Creates a copy of another rectangle. More...
| Rectangle (ValueType initialX, ValueType initialY, ValueType width, ValueType height) noexcept
| Creates a rectangle with a given position and size. More...
| Rectangle (ValueType width, ValueType height) noexcept
| Creates a rectangle with a given size, and a position of (0, 0). More...
| Rectangle (Point< ValueType > corner1, Point< ValueType > corner2) noexcept
| Creates a Rectangle from the positions of two opposite corners. More...
Rectangle & | operator= (const Rectangle &)=default
| Creates a copy of another rectangle. More...
| ~Rectangle ()=default
| Destructor. More...
bool | isEmpty () const noexcept
| Returns true if the rectangle's width or height are zero or less. More...
bool | isFinite () const noexcept
| Returns true if the rectangle's values are all finite numbers, i.e. More...
ValueType | getX () const noexcept
| Returns the x coordinate of the rectangle's left-hand-side. More...
ValueType | getY () const noexcept
| Returns the y coordinate of the rectangle's top edge. More...
ValueType | getWidth () const noexcept
| Returns the width of the rectangle. More...
ValueType | getHeight () const noexcept
| Returns the height of the rectangle. More...
ValueType | getRight () const noexcept
| Returns the x coordinate of the rectangle's right-hand-side. More...
ValueType | getBottom () const noexcept
| Returns the y coordinate of the rectangle's bottom edge. More...
ValueType | getCentreX () const noexcept
| Returns the x coordinate of the rectangle's centre. More...
ValueType | getCentreY () const noexcept
| Returns the y coordinate of the rectangle's centre. More...
Point< ValueType > | getCentre () const noexcept
| Returns the centre point of the rectangle. More...
ValueType | getAspectRatio (bool widthOverHeight=true) const noexcept
| Returns the aspect ratio of the rectangle's width / height. More...
Point< ValueType > | getPosition () const noexcept
| Returns the rectangle's top-left position as a Point. More...
void | setPosition (Point< ValueType > newPos) noexcept
| Changes the position of the rectangle's top-left corner (leaving its size unchanged). More...
void | setPosition (ValueType newX, ValueType newY) noexcept
| Changes the position of the rectangle's top-left corner (leaving its size unchanged). More...
Point< ValueType > | getTopLeft () const noexcept
| Returns the rectangle's top-left position as a Point. More...
Point< ValueType > | getTopRight () const noexcept
| Returns the rectangle's top-right position as a Point. More...
Point< ValueType > | getBottomLeft () const noexcept
| Returns the rectangle's bottom-left position as a Point. More...
Point< ValueType > | getBottomRight () const noexcept
| Returns the rectangle's bottom-right position as a Point. More...
Range< ValueType > | getHorizontalRange () const noexcept
| Returns the rectangle's left and right positions as a Range. More...
Range< ValueType > | getVerticalRange () const noexcept
| Returns the rectangle's top and bottom positions as a Range. More...
void | setSize (ValueType newWidth, ValueType newHeight) noexcept
| Changes the rectangle's size, leaving the position of its top-left corner unchanged. More...
void | setBounds (ValueType newX, ValueType newY, ValueType newWidth, ValueType newHeight) noexcept
| Changes all the rectangle's coordinates. More...
void | setX (ValueType newX) noexcept
| Changes the rectangle's X coordinate. More...
void | setY (ValueType newY) noexcept
| Changes the rectangle's Y coordinate. More...
void | setWidth (ValueType newWidth) noexcept
| Changes the rectangle's width. More...
void | setHeight (ValueType newHeight) noexcept
| Changes the rectangle's height. More...
void | setCentre (ValueType newCentreX, ValueType newCentreY) noexcept
| Changes the position of the rectangle's centre (leaving its size unchanged). More...
void | setCentre (Point< ValueType > newCentre) noexcept
| Changes the position of the rectangle's centre (leaving its size unchanged). More...
void | setHorizontalRange (Range< ValueType > range) noexcept
| Changes the position of the rectangle's left and right edges. More...
void | setVerticalRange (Range< ValueType > range) noexcept
| Changes the position of the rectangle's top and bottom edges. More...
JUCE_NODISCARD Rectangle | withX (ValueType newX) const noexcept
| Returns a rectangle which has the same size and y-position as this one, but with a different x-position. More...
JUCE_NODISCARD Rectangle | withY (ValueType newY) const noexcept
| Returns a rectangle which has the same size and x-position as this one, but with a different y-position. More...
JUCE_NODISCARD Rectangle | withRightX (ValueType newRightX) const noexcept
| Returns a rectangle which has the same size and y-position as this one, but whose right-hand edge has the given position. More...
JUCE_NODISCARD Rectangle | withBottomY (ValueType newBottomY) const noexcept
| Returns a rectangle which has the same size and x-position as this one, but whose bottom edge has the given position. More...
JUCE_NODISCARD Rectangle | withPosition (ValueType newX, ValueType newY) const noexcept
| Returns a rectangle with the same size as this one, but a new position. More...
JUCE_NODISCARD Rectangle | withPosition (Point< ValueType > newPos) const noexcept
| Returns a rectangle with the same size as this one, but a new position. More...
JUCE_NODISCARD Rectangle | withZeroOrigin () const noexcept
| Returns a rectangle whose size is the same as this one, but whose top-left position is (0, 0). More...
JUCE_NODISCARD Rectangle | withCentre (Point< ValueType > newCentre) const noexcept
| Returns a rectangle with the same size as this one, but a new centre position. More...
JUCE_NODISCARD Rectangle | withWidth (ValueType newWidth) const noexcept
| Returns a rectangle which has the same position and height as this one, but with a different width. More...
JUCE_NODISCARD Rectangle | withHeight (ValueType newHeight) const noexcept
| Returns a rectangle which has the same position and width as this one, but with a different height. More...
JUCE_NODISCARD Rectangle | withSize (ValueType newWidth, ValueType newHeight) const noexcept
| Returns a rectangle with the same top-left position as this one, but a new size. More...
JUCE_NODISCARD Rectangle | withSizeKeepingCentre (ValueType newWidth, ValueType newHeight) const noexcept
| Returns a rectangle with the same centre position as this one, but a new size. More...
void | setLeft (ValueType newLeft) noexcept
| Moves the x position, adjusting the width so that the right-hand edge remains in the same place. More...
JUCE_NODISCARD Rectangle | withLeft (ValueType newLeft) const noexcept
| Returns a new rectangle with a different x position, but the same right-hand edge as this one. More...
void | setTop (ValueType newTop) noexcept
| Moves the y position, adjusting the height so that the bottom edge remains in the same place. More...
JUCE_NODISCARD Rectangle | withTop (ValueType newTop) const noexcept
| Returns a new rectangle with a different y position, but the same bottom edge as this one. More...
void | setRight (ValueType newRight) noexcept
| Adjusts the width so that the right-hand edge of the rectangle has this new value. More...
JUCE_NODISCARD Rectangle | withRight (ValueType newRight) const noexcept
| Returns a new rectangle with a different right-hand edge position, but the same left-hand edge as this one. More...
void | setBottom (ValueType newBottom) noexcept
| Adjusts the height so that the bottom edge of the rectangle has this new value. More...
JUCE_NODISCARD Rectangle | withBottom (ValueType newBottom) const noexcept
| Returns a new rectangle with a different bottom edge position, but the same top edge as this one. More...
JUCE_NODISCARD Rectangle | withTrimmedLeft (ValueType amountToRemove) const noexcept
| Returns a version of this rectangle with the given amount removed from its left-hand edge. More...
JUCE_NODISCARD Rectangle | withTrimmedRight (ValueType amountToRemove) const noexcept
| Returns a version of this rectangle with the given amount removed from its right-hand edge. More...
JUCE_NODISCARD Rectangle | withTrimmedTop (ValueType amountToRemove) const noexcept
| Returns a version of this rectangle with the given amount removed from its top edge. More...
JUCE_NODISCARD Rectangle | withTrimmedBottom (ValueType amountToRemove) const noexcept
| Returns a version of this rectangle with the given amount removed from its bottom edge. More...
void | translate (ValueType deltaX, ValueType deltaY) noexcept
| Moves the rectangle's position by adding amount to its x and y coordinates. More...
Rectangle | translated (ValueType deltaX, ValueType deltaY) const noexcept
| Returns a rectangle which is the same as this one moved by a given amount. More...
Rectangle | operator+ (Point< ValueType > deltaPosition) const noexcept
| Returns a rectangle which is the same as this one moved by a given amount. More...
Rectangle & | operator+= (Point< ValueType > deltaPosition) noexcept
| Moves this rectangle by a given amount. More...
Rectangle | operator- (Point< ValueType > deltaPosition) const noexcept
| Returns a rectangle which is the same as this one moved by a given amount. More...
Rectangle & | operator-= (Point< ValueType > deltaPosition) noexcept
| Moves this rectangle by a given amount. More...
template<typename FloatType >
Rectangle | operator* (FloatType scaleFactor) const noexcept
| Returns a rectangle that has been scaled by the given amount, centred around the origin. More...
template<typename FloatType >
Rectangle | operator*= (FloatType scaleFactor) noexcept
| Scales this rectangle by the given amount, centred around the origin. More...
template<typename FloatType >
Rectangle | operator*= (Point< FloatType > scaleFactor) noexcept
| Scales this rectangle by the given X and Y factors, centred around the origin. More...
template<typename FloatType >
Rectangle | operator/ (FloatType scaleFactor) const noexcept
| Scales this rectangle by the given amount, centred around the origin. More...
template<typename FloatType >
Rectangle | operator/= (FloatType scaleFactor) noexcept
| Scales this rectangle by the given amount, centred around the origin. More...
template<typename FloatType >
Rectangle | operator/= (Point< FloatType > scaleFactor) noexcept
| Scales this rectangle by the given X and Y factors, centred around the origin. More...
void | expand (ValueType deltaX, ValueType deltaY) noexcept
| Expands the rectangle by a given amount. More...
Rectangle | expanded (ValueType deltaX, ValueType deltaY) const noexcept
| Returns a rectangle that is larger than this one by a given amount. More...
Rectangle | expanded (ValueType delta) const noexcept
| Returns a rectangle that is larger than this one by a given amount. More...
void | reduce (ValueType deltaX, ValueType deltaY) noexcept
| Shrinks the rectangle by a given amount. More...
Rectangle | reduced (ValueType deltaX, ValueType deltaY) const noexcept
| Returns a rectangle that is smaller than this one by a given amount. More...
Rectangle | reduced (ValueType delta) const noexcept
| Returns a rectangle that is smaller than this one by a given amount. More...
Rectangle | removeFromTop (ValueType amountToRemove) noexcept
| Removes a strip from the top of this rectangle, reducing this rectangle by the specified amount and returning the section that was removed. More...
Rectangle | removeFromLeft (ValueType amountToRemove) noexcept
| Removes a strip from the left-hand edge of this rectangle, reducing this rectangle by the specified amount and returning the section that was removed. More...
Rectangle | removeFromRight (ValueType amountToRemove) noexcept
| Removes a strip from the right-hand edge of this rectangle, reducing this rectangle by the specified amount and returning the section that was removed. More...
Rectangle | removeFromBottom (ValueType amountToRemove) noexcept
| Removes a strip from the bottom of this rectangle, reducing this rectangle by the specified amount and returning the section that was removed. More...
Point< ValueType > | getConstrainedPoint (Point< ValueType > point) const noexcept
| Returns the nearest point to the specified point that lies within this rectangle. More...
template<typename FloatType >
Point< ValueType > | getRelativePoint (FloatType relativeX, FloatType relativeY) const noexcept
| Returns a point within this rectangle, specified as proportional coordinates. More...
template<typename FloatType >
ValueType | proportionOfWidth (FloatType proportion) const noexcept
| Returns a proportion of the width of this rectangle. More...
template<typename FloatType >
ValueType | proportionOfHeight (FloatType proportion) const noexcept
| Returns a proportion of the height of this rectangle. More...
template<typename FloatType >
Rectangle | getProportion (Rectangle< FloatType > proportionalRect) const noexcept
| Returns a rectangle based on some proportional coordinates relative to this one. More...
bool | operator== (const Rectangle &other) const noexcept
| Returns true if the two rectangles are identical. More...
bool | operator!= (const Rectangle &other) const noexcept
| Returns true if the two rectangles are not identical. More...
bool | contains (ValueType xCoord, ValueType yCoord) const noexcept
| Returns true if this coordinate is inside the rectangle. More...
bool | contains (Point< ValueType > point) const noexcept
| Returns true if this coordinate is inside the rectangle. More...
bool | contains (Rectangle other) const noexcept
| Returns true if this other rectangle is completely inside this one. More...
bool | intersects (Rectangle other) const noexcept
| Returns true if any part of another rectangle overlaps this one. More...
bool | intersects (const Line< ValueType > &line) const noexcept
| Returns true if any part of the given line lies inside this rectangle. More...
Rectangle | getIntersection (Rectangle other) const noexcept
| Returns the region that is the overlap between this and another rectangle. More...
bool | intersectRectangle (ValueType &otherX, ValueType &otherY, ValueType &otherW, ValueType &otherH) const noexcept
| Clips a set of rectangle coordinates so that they lie only within this one. More...
bool | intersectRectangle (Rectangle< ValueType > &rectangleToClip) const noexcept
| Clips a rectangle so that it lies only within this one. More...
Rectangle | getUnion (Rectangle other) const noexcept
| Returns the smallest rectangle that contains both this one and the one passed-in. More...
bool | enlargeIfAdjacent (Rectangle other) noexcept
| If this rectangle merged with another one results in a simple rectangle, this will set this rectangle to the result, and return true. More...
bool | reduceIfPartlyContainedIn (Rectangle other) noexcept
| If after removing another rectangle from this one the result is a simple rectangle, this will set this object's bounds to be the result, and return true. More...
Rectangle | constrainedWithin (Rectangle areaToFitWithin) const noexcept
| Tries to fit this rectangle within a target area, returning the result. More...
Rectangle | transformedBy (const AffineTransform &transform) const noexcept
| Returns the smallest rectangle that can contain the shape created by applying a transform to this rectangle. More...
Rectangle< int > | getSmallestIntegerContainer () const noexcept
| Returns the smallest integer-aligned rectangle that completely contains this one. More...
Rectangle< int > | toNearestInt () const noexcept
| Casts this rectangle to a Rectangle<int>. More...
Rectangle< int > | toNearestIntEdges () const noexcept
| Casts this rectangle to a Rectangle<int>. More...
Rectangle< float > | toFloat () const noexcept
| Casts this rectangle to a Rectangle<float>. More...
Rectangle< double > | toDouble () const noexcept
| Casts this rectangle to a Rectangle<double>. More...
template<typename TargetType >
Rectangle< TargetType > | toType () const noexcept
| Casts this rectangle to a Rectangle with the given type. More...
String | toString () const
| Creates a string describing this rectangle. More...

## Static Public Member Functions
static Rectangle | leftTopRightBottom (ValueType left, ValueType top, ValueType right, ValueType bottom) noexcept
| Creates a Rectangle from a set of left, right, top, bottom coordinates. More...
static Rectangle | findAreaContainingPoints (const Point< ValueType > *points, int numPoints) noexcept
| Returns the smallest Rectangle that can contain a set of points. More...
static bool | intersectRectangles (ValueType &x1, ValueType &y1, ValueType &w1, ValueType &h1, ValueType x2, ValueType y2, ValueType w2, ValueType h2) noexcept
| Static utility to intersect two sets of rectangular coordinates. More...
static Rectangle | fromString (StringRef stringVersion)
| Parses a string containing a rectangle's details. More...

## Detailed Description

template<typename ValueType>
class Rectangle< ValueType >

Manages a rectangle and allows geometric operations to be performed on it.

See also
  RectangleList, Path, Line, Point

## Constructor & Destructor Documentation

## ◆ Rectangle() [1/5]

template<typename ValueType >

Rectangle< ValueType >::Rectangle | ( |  | ) |
| default

Creates a rectangle of zero size.

The default coordinates will be (0, 0, 0, 0).

## ◆ Rectangle() [2/5]

template<typename ValueType >

Rectangle< ValueType >::Rectangle | ( | const Rectangle< ValueType > & |  | ) |
| default

Creates a copy of another rectangle.

## ◆ Rectangle() [3/5]

template<typename ValueType >

Rectangle< ValueType >::Rectangle | ( | ValueType | initialX,
|  | ValueType | initialY,
|  | ValueType | width,
|  | ValueType | height
| ) |  |
| noexcept

Creates a rectangle with a given position and size.

## ◆ Rectangle() [4/5]

template<typename ValueType >

Rectangle< ValueType >::Rectangle | ( | ValueType | width,
|  | ValueType | height
| ) |  |
| noexcept

Creates a rectangle with a given size, and a position of (0, 0).

## ◆ Rectangle() [5/5]

template<typename ValueType >

Rectangle< ValueType >::Rectangle | ( | Point< ValueType > | corner1,
|  | Point< ValueType > | corner2
| ) |  |
| noexcept

Creates a Rectangle from the positions of two opposite corners.

## ◆ ~Rectangle()

template<typename ValueType >

Rectangle< ValueType >::~Rectangle | ( |  | ) |
| default

Destructor.

## Member Function Documentation

## ◆ leftTopRightBottom()

template<typename ValueType >

static Rectangle Rectangle< ValueType >::leftTopRightBottom | ( | ValueType | left,
|  | ValueType | top,
|  | ValueType | right,
|  | ValueType | bottom
| ) |  |
| staticnoexcept

Creates a Rectangle from a set of left, right, top, bottom coordinates.

The right and bottom values must be larger than the left and top ones, or the resulting rectangle will have a negative size.

References gl::bottom, gl::left, gl::right, and gl::top.

Referenced by Rectangle< ValueType >::getSmallestIntegerContainer(), and Rectangle< ValueType >::toNearestIntEdges().

## ◆ operator=()

template<typename ValueType >

Rectangle & Rectangle< ValueType >::operator= | ( | const Rectangle< ValueType > & |  | ) |
| default

Creates a copy of another rectangle.

## ◆ isEmpty()

template<typename ValueType >

bool Rectangle< ValueType >::isEmpty | ( |  | ) | const
| noexcept

Returns true if the rectangle's width or height are zero or less.

Referenced by RectangleList< ValueType >::add(), RectangleList< ValueType >::addWithoutMerging(), RectangleList< ValueType >::clipTo(), RectangleList< ValueType >::getIntersectionWith(), and Rectangle< ValueType >::getUnion().

## ◆ isFinite()

template<typename ValueType >

bool Rectangle< ValueType >::isFinite | ( |  | ) | const
| noexcept

Returns true if the rectangle's values are all finite numbers, i.e.

not NaN or infinity.

References juce_isfinite().

Referenced by RectangleList< ValueType >::add(), RectangleList< ValueType >::addWithoutMerging(), RectangleList< ValueType >::clipTo(), and RectangleList< ValueType >::getIntersectionWith().

## ◆ getX()

template<typename ValueType >

ValueType Rectangle< ValueType >::getX | ( |  | ) | const
| noexcept

Returns the x coordinate of the rectangle's left-hand-side.

Referenced by Path::addRoundedRectangle(), ColourGradient::horizontal(), and RectangleList< ValueType >::subtract().

## ◆ getY()

template<typename ValueType >

ValueType Rectangle< ValueType >::getY | ( |  | ) | const
| noexcept

Returns the y coordinate of the rectangle's top edge.

Referenced by Path::addRoundedRectangle(), and RectangleList< ValueType >::subtract().

## ◆ getWidth()

template<typename ValueType >

ValueType Rectangle< ValueType >::getWidth | ( |  | ) | const
| noexcept

Returns the width of the rectangle.

Referenced by Path::addRoundedRectangle(), and RectangleList< ValueType >::subtract().

## ◆ getHeight()

template<typename ValueType >

ValueType Rectangle< ValueType >::getHeight | ( |  | ) | const
| noexcept

Returns the height of the rectangle.

Referenced by Path::addRoundedRectangle(), and RectangleList< ValueType >::subtract().

## ◆ getRight()

template<typename ValueType >

ValueType Rectangle< ValueType >::getRight | ( |  | ) | const
| noexcept

Returns the x coordinate of the rectangle's right-hand-side.

Referenced by Rectangle< ValueType >::enlargeIfAdjacent(), ColourGradient::horizontal(), and Rectangle< ValueType >::toNearestIntEdges().

## ◆ getBottom()

template<typename ValueType >

ValueType Rectangle< ValueType >::getBottom | ( |  | ) | const
| noexcept

Returns the y coordinate of the rectangle's bottom edge.

Referenced by Rectangle< ValueType >::enlargeIfAdjacent(), and Rectangle< ValueType >::toNearestIntEdges().

## ◆ getCentreX()

template<typename ValueType >

ValueType Rectangle< ValueType >::getCentreX | ( |  | ) | const
| noexcept

Returns the x coordinate of the rectangle's centre.

## ◆ getCentreY()

template<typename ValueType >

ValueType Rectangle< ValueType >::getCentreY | ( |  | ) | const
| noexcept

Returns the y coordinate of the rectangle's centre.

## ◆ getCentre()

template<typename ValueType >

Point< ValueType > Rectangle< ValueType >::getCentre | ( |  | ) | const
| noexcept

Returns the centre point of the rectangle.

## ◆ getAspectRatio()

template<typename ValueType >

ValueType Rectangle< ValueType >::getAspectRatio | ( | bool | widthOverHeight = `true` | ) | const
| noexcept

Returns the aspect ratio of the rectangle's width / height.

If widthOverHeight is true, it returns width / height; if widthOverHeight is false, it returns height / width.

## ◆ getPosition()

template<typename ValueType >

Point< ValueType > Rectangle< ValueType >::getPosition | ( |  | ) | const
| noexcept

Returns the rectangle's top-left position as a Point.

## ◆ setPosition() [1/2]

template<typename ValueType >

void Rectangle< ValueType >::setPosition | ( | Point< ValueType > | newPos | ) |
| noexcept

Changes the position of the rectangle's top-left corner (leaving its size unchanged).

## ◆ setPosition() [2/2]

template<typename ValueType >

void Rectangle< ValueType >::setPosition | ( | ValueType | newX,
|  | ValueType | newY
| ) |  |
| noexcept

Changes the position of the rectangle's top-left corner (leaving its size unchanged).

## ◆ getTopLeft()

template<typename ValueType >

Point< ValueType > Rectangle< ValueType >::getTopLeft | ( |  | ) | const
| noexcept

Returns the rectangle's top-left position as a Point.

Referenced by Rectangle< ValueType >::intersects().

## ◆ getTopRight()

template<typename ValueType >

Point< ValueType > Rectangle< ValueType >::getTopRight | ( |  | ) | const
| noexcept

Returns the rectangle's top-right position as a Point.

Referenced by Rectangle< ValueType >::intersects().

## ◆ getBottomLeft()

template<typename ValueType >

Point< ValueType > Rectangle< ValueType >::getBottomLeft | ( |  | ) | const
| noexcept

Returns the rectangle's bottom-left position as a Point.

Referenced by Rectangle< ValueType >::intersects().

## ◆ getBottomRight()

template<typename ValueType >

Point< ValueType > Rectangle< ValueType >::getBottomRight | ( |  | ) | const
| noexcept

Returns the rectangle's bottom-right position as a Point.

Referenced by Rectangle< ValueType >::intersects().

## ◆ getHorizontalRange()

template<typename ValueType >

Range< ValueType > Rectangle< ValueType >::getHorizontalRange | ( |  | ) | const
| noexcept

Returns the rectangle's left and right positions as a Range.

References Range< ValueType >::withStartAndLength().

## ◆ getVerticalRange()

template<typename ValueType >

Range< ValueType > Rectangle< ValueType >::getVerticalRange | ( |  | ) | const
| noexcept

Returns the rectangle's top and bottom positions as a Range.

References Range< ValueType >::withStartAndLength().

## ◆ setSize()

template<typename ValueType >

void Rectangle< ValueType >::setSize | ( | ValueType | newWidth,
|  | ValueType | newHeight
| ) |  |
| noexcept

Changes the rectangle's size, leaving the position of its top-left corner unchanged.

## ◆ setBounds()

template<typename ValueType >

void Rectangle< ValueType >::setBounds | ( | ValueType | newX,
|  | ValueType | newY,
|  | ValueType | newWidth,
|  | ValueType | newHeight
| ) |  |
| noexcept

Changes all the rectangle's coordinates.

Referenced by Rectangle< ValueType >::expand().

## ◆ setX()

template<typename ValueType >

void Rectangle< ValueType >::setX | ( | ValueType | newX | ) |
| noexcept

Changes the rectangle's X coordinate.

## ◆ setY()

template<typename ValueType >

void Rectangle< ValueType >::setY | ( | ValueType | newY | ) |
| noexcept

Changes the rectangle's Y coordinate.

## ◆ setWidth()

template<typename ValueType >

void Rectangle< ValueType >::setWidth | ( | ValueType | newWidth | ) |
| noexcept

Changes the rectangle's width.

## ◆ setHeight()

template<typename ValueType >

void Rectangle< ValueType >::setHeight | ( | ValueType | newHeight | ) |
| noexcept

Changes the rectangle's height.

## ◆ setCentre() [1/2]

template<typename ValueType >

void Rectangle< ValueType >::setCentre | ( | ValueType | newCentreX,
|  | ValueType | newCentreY
| ) |  |
| noexcept

Changes the position of the rectangle's centre (leaving its size unchanged).

## ◆ setCentre() [2/2]

template<typename ValueType >

void Rectangle< ValueType >::setCentre | ( | Point< ValueType > | newCentre | ) |
| noexcept

Changes the position of the rectangle's centre (leaving its size unchanged).

References Rectangle< ValueType >::setCentre().

Referenced by Rectangle< ValueType >::setCentre().

## ◆ setHorizontalRange()

template<typename ValueType >

void Rectangle< ValueType >::setHorizontalRange | ( | Range< ValueType > | range | ) |
| noexcept

Changes the position of the rectangle's left and right edges.

References gl::range.

## ◆ setVerticalRange()

template<typename ValueType >

void Rectangle< ValueType >::setVerticalRange | ( | Range< ValueType > | range | ) |
| noexcept

Changes the position of the rectangle's top and bottom edges.

References gl::range.

## ◆ withX()

template<typename ValueType >

JUCE_NODISCARD Rectangle Rectangle< ValueType >::withX | ( | ValueType | newX | ) | const
| noexcept

Returns a rectangle which has the same size and y-position as this one, but with a different x-position.

## ◆ withY()

template<typename ValueType >

JUCE_NODISCARD Rectangle Rectangle< ValueType >::withY | ( | ValueType | newY | ) | const
| noexcept

Returns a rectangle which has the same size and x-position as this one, but with a different y-position.

## ◆ withRightX()

template<typename ValueType >

JUCE_NODISCARD Rectangle Rectangle< ValueType >::withRightX | ( | ValueType | newRightX | ) | const
| noexcept

Returns a rectangle which has the same size and y-position as this one, but whose right-hand edge has the given position.

## ◆ withBottomY()

template<typename ValueType >

JUCE_NODISCARD Rectangle Rectangle< ValueType >::withBottomY | ( | ValueType | newBottomY | ) | const
| noexcept

Returns a rectangle which has the same size and x-position as this one, but whose bottom edge has the given position.

## ◆ withPosition() [1/2]

template<typename ValueType >

JUCE_NODISCARD Rectangle Rectangle< ValueType >::withPosition | ( | ValueType | newX,
|  | ValueType | newY
| ) |  | const
| noexcept

Returns a rectangle with the same size as this one, but a new position.

## ◆ withPosition() [2/2]

template<typename ValueType >

JUCE_NODISCARD Rectangle Rectangle< ValueType >::withPosition | ( | Point< ValueType > | newPos | ) | const
| noexcept

Returns a rectangle with the same size as this one, but a new position.

## ◆ withZeroOrigin()

template<typename ValueType >

JUCE_NODISCARD Rectangle Rectangle< ValueType >::withZeroOrigin | ( |  | ) | const
| noexcept

Returns a rectangle whose size is the same as this one, but whose top-left position is (0, 0).

## ◆ withCentre()

template<typename ValueType >

JUCE_NODISCARD Rectangle Rectangle< ValueType >::withCentre | ( | Point< ValueType > | newCentre | ) | const
| noexcept

Returns a rectangle with the same size as this one, but a new centre position.

## ◆ withWidth()

template<typename ValueType >

JUCE_NODISCARD Rectangle Rectangle< ValueType >::withWidth | ( | ValueType | newWidth | ) | const
| noexcept

Returns a rectangle which has the same position and height as this one, but with a different width.

References jmax().

Referenced by Rectangle< ValueType >::withTrimmedRight().

## ◆ withHeight()

template<typename ValueType >

JUCE_NODISCARD Rectangle Rectangle< ValueType >::withHeight | ( | ValueType | newHeight | ) | const
| noexcept

Returns a rectangle which has the same position and width as this one, but with a different height.

References jmax().

Referenced by Rectangle< ValueType >::withTrimmedBottom().

## ◆ withSize()

template<typename ValueType >

JUCE_NODISCARD Rectangle Rectangle< ValueType >::withSize | ( | ValueType | newWidth,
|  | ValueType | newHeight
| ) |  | const
| noexcept

Returns a rectangle with the same top-left position as this one, but a new size.

References jmax().

Referenced by Rectangle< ValueType >::constrainedWithin().

## ◆ withSizeKeepingCentre()

template<typename ValueType >

JUCE_NODISCARD Rectangle Rectangle< ValueType >::withSizeKeepingCentre | ( | ValueType | newWidth,
|  | ValueType | newHeight
| ) |  | const
| noexcept

Returns a rectangle with the same centre position as this one, but a new size.

## ◆ setLeft()

template<typename ValueType >

void Rectangle< ValueType >::setLeft | ( | ValueType | newLeft | ) |
| noexcept

Moves the x position, adjusting the width so that the right-hand edge remains in the same place.

If the x is moved to be on the right of the current right-hand edge, the width will be set to zero.

See also
  withLeft

References jmax().

## ◆ withLeft()

template<typename ValueType >

JUCE_NODISCARD Rectangle Rectangle< ValueType >::withLeft | ( | ValueType | newLeft | ) | const
| noexcept

Returns a new rectangle with a different x position, but the same right-hand edge as this one.

If the new x is beyond the right of the current right-hand edge, the width will be set to zero.

See also
  setLeft

References jmax().

Referenced by Rectangle< ValueType >::withTrimmedLeft().

## ◆ setTop()

template<typename ValueType >

void Rectangle< ValueType >::setTop | ( | ValueType | newTop | ) |
| noexcept

Moves the y position, adjusting the height so that the bottom edge remains in the same place.

If the y is moved to be below the current bottom edge, the height will be set to zero.

See also
  withTop

References jmax().

## ◆ withTop()

template<typename ValueType >

JUCE_NODISCARD Rectangle Rectangle< ValueType >::withTop | ( | ValueType | newTop | ) | const
| noexcept

Returns a new rectangle with a different y position, but the same bottom edge as this one.

If the new y is beyond the bottom of the current rectangle, the height will be set to zero.

See also
  setTop

References jmax().

Referenced by Rectangle< ValueType >::withTrimmedTop().

## ◆ setRight()

template<typename ValueType >

void Rectangle< ValueType >::setRight | ( | ValueType | newRight | ) |
| noexcept

Adjusts the width so that the right-hand edge of the rectangle has this new value.

If the new right is below the current X value, the X will be pushed down to match it.

See also
  getRight, withRight

References jmin().

## ◆ withRight()

template<typename ValueType >

JUCE_NODISCARD Rectangle Rectangle< ValueType >::withRight | ( | ValueType | newRight | ) | const
| noexcept

Returns a new rectangle with a different right-hand edge position, but the same left-hand edge as this one.

If the new right edge is below the current left-hand edge, the width will be set to zero.

See also
  setRight

References jmax(), and jmin().

## ◆ setBottom()

template<typename ValueType >

void Rectangle< ValueType >::setBottom | ( | ValueType | newBottom | ) |
| noexcept

Adjusts the height so that the bottom edge of the rectangle has this new value.

If the new bottom is lower than the current Y value, the Y will be pushed down to match it.

See also
  getBottom, withBottom

References jmin().

## ◆ withBottom()

template<typename ValueType >

JUCE_NODISCARD Rectangle Rectangle< ValueType >::withBottom | ( | ValueType | newBottom | ) | const
| noexcept

Returns a new rectangle with a different bottom edge position, but the same top edge as this one.

If the new y is beyond the bottom of the current rectangle, the height will be set to zero.

See also
  setBottom

References jmax(), and jmin().

## ◆ withTrimmedLeft()

template<typename ValueType >

JUCE_NODISCARD Rectangle Rectangle< ValueType >::withTrimmedLeft | ( | ValueType | amountToRemove | ) | const
| noexcept

Returns a version of this rectangle with the given amount removed from its left-hand edge.

References Rectangle< ValueType >::withLeft().

## ◆ withTrimmedRight()

template<typename ValueType >

JUCE_NODISCARD Rectangle Rectangle< ValueType >::withTrimmedRight | ( | ValueType | amountToRemove | ) | const
| noexcept

Returns a version of this rectangle with the given amount removed from its right-hand edge.

References Rectangle< ValueType >::withWidth().

## ◆ withTrimmedTop()

template<typename ValueType >

JUCE_NODISCARD Rectangle Rectangle< ValueType >::withTrimmedTop | ( | ValueType | amountToRemove | ) | const
| noexcept

Returns a version of this rectangle with the given amount removed from its top edge.

References Rectangle< ValueType >::withTop().

## ◆ withTrimmedBottom()

template<typename ValueType >

JUCE_NODISCARD Rectangle Rectangle< ValueType >::withTrimmedBottom | ( | ValueType | amountToRemove | ) | const
| noexcept

Returns a version of this rectangle with the given amount removed from its bottom edge.

References Rectangle< ValueType >::withHeight().

## ◆ translate()

template<typename ValueType >

void Rectangle< ValueType >::translate | ( | ValueType | deltaX,
|  | ValueType | deltaY
| ) |  |
| noexcept

Moves the rectangle's position by adding amount to its x and y coordinates.

## ◆ translated()

template<typename ValueType >

Rectangle Rectangle< ValueType >::translated | ( | ValueType | deltaX,
|  | ValueType | deltaY
| ) |  | const
| noexcept

Returns a rectangle which is the same as this one moved by a given amount.

## ◆ operator+()

template<typename ValueType >

Rectangle Rectangle< ValueType >::operator+ | ( | Point< ValueType > | deltaPosition | ) | const
| noexcept

Returns a rectangle which is the same as this one moved by a given amount.

## ◆ operator+=()

template<typename ValueType >

Rectangle & Rectangle< ValueType >::operator+= | ( | Point< ValueType > | deltaPosition | ) |
| noexcept

Moves this rectangle by a given amount.

## ◆ operator-()

template<typename ValueType >

Rectangle Rectangle< ValueType >::operator- | ( | Point< ValueType > | deltaPosition | ) | const
| noexcept

Returns a rectangle which is the same as this one moved by a given amount.

## ◆ operator-=()

template<typename ValueType >

Rectangle & Rectangle< ValueType >::operator-= | ( | Point< ValueType > | deltaPosition | ) |
| noexcept

Moves this rectangle by a given amount.

## ◆ operator*()

template<typename ValueType >
template<typename FloatType >

Rectangle Rectangle< ValueType >::operator* | ( | FloatType | scaleFactor | ) | const
| noexcept

Returns a rectangle that has been scaled by the given amount, centred around the origin.

Note that if the rectangle has int coordinates and it's scaled by a floating-point amount, then the result will be converted back to integer coordinates using getSmallestIntegerContainer().

References gl::r, and gl::scaleFactor.

## ◆ operator*=() [1/2]

template<typename ValueType >
template<typename FloatType >

Rectangle Rectangle< ValueType >::operator*= | ( | FloatType | scaleFactor | ) |
| noexcept

Scales this rectangle by the given amount, centred around the origin.

Note that if the rectangle has int coordinates and it's scaled by a floating-point amount, then the result will be converted back to integer coordinates using getSmallestIntegerContainer().

References gl::scaleFactor.

## ◆ operator*=() [2/2]

template<typename ValueType >
template<typename FloatType >

Rectangle Rectangle< ValueType >::operator*= | ( | Point< FloatType > | scaleFactor | ) |
| noexcept

Scales this rectangle by the given X and Y factors, centred around the origin.

Note that if the rectangle has int coordinates and it's scaled by a floating-point amount, then the result will be converted back to integer coordinates using getSmallestIntegerContainer().

References gl::scaleFactor.

## ◆ operator/()

template<typename ValueType >
template<typename FloatType >

Rectangle Rectangle< ValueType >::operator/ | ( | FloatType | scaleFactor | ) | const
| noexcept

Scales this rectangle by the given amount, centred around the origin.

References gl::r, and gl::scaleFactor.

## ◆ operator/=() [1/2]

template<typename ValueType >
template<typename FloatType >

Rectangle Rectangle< ValueType >::operator/= | ( | FloatType | scaleFactor | ) |
| noexcept

Scales this rectangle by the given amount, centred around the origin.

References gl::scaleFactor.

## ◆ operator/=() [2/2]

template<typename ValueType >
template<typename FloatType >

Rectangle Rectangle< ValueType >::operator/= | ( | Point< FloatType > | scaleFactor | ) |
| noexcept

Scales this rectangle by the given X and Y factors, centred around the origin.

References gl::scaleFactor.

## ◆ expand()

template<typename ValueType >

void Rectangle< ValueType >::expand | ( | ValueType | deltaX,
|  | ValueType | deltaY
| ) |  |
| noexcept

Expands the rectangle by a given amount.

Effectively, its new size is (x - deltaX, y - deltaY, w + deltaX * 2, h + deltaY * 2).

See also
  expanded, reduce, reduced

References jmax(), and Rectangle< ValueType >::setBounds().

Referenced by Rectangle< ValueType >::reduce().

## ◆ expanded() [1/2]

template<typename ValueType >

Rectangle Rectangle< ValueType >::expanded | ( | ValueType | deltaX,
|  | ValueType | deltaY
| ) |  | const
| noexcept

Returns a rectangle that is larger than this one by a given amount.

Effectively, the rectangle returned is (x - deltaX, y - deltaY, w + deltaX * 2, h + deltaY * 2).

See also
  expand, reduce, reduced

References jmax().

Referenced by Rectangle< ValueType >::expanded(), and Rectangle< ValueType >::reduced().

## ◆ expanded() [2/2]

template<typename ValueType >

Rectangle Rectangle< ValueType >::expanded | ( | ValueType | delta | ) | const
| noexcept

Returns a rectangle that is larger than this one by a given amount.

Effectively, the rectangle returned is (x - delta, y - delta, w + delta * 2, h + delta * 2).

See also
  expand, reduce, reduced

References Rectangle< ValueType >::expanded().

## ◆ reduce()

template<typename ValueType >

void Rectangle< ValueType >::reduce | ( | ValueType | deltaX,
|  | ValueType | deltaY
| ) |  |
| noexcept

Shrinks the rectangle by a given amount.

Effectively, its new size is (x + deltaX, y + deltaY, w - deltaX * 2, h - deltaY * 2).

See also
  reduced, expand, expanded

References Rectangle< ValueType >::expand().

## ◆ reduced() [1/2]

template<typename ValueType >

Rectangle Rectangle< ValueType >::reduced | ( | ValueType | deltaX,
|  | ValueType | deltaY
| ) |  | const
| noexcept

Returns a rectangle that is smaller than this one by a given amount.

Effectively, the rectangle returned is (x + deltaX, y + deltaY, w - deltaX * 2, h - deltaY * 2).

See also
  reduce, expand, expanded

References Rectangle< ValueType >::expanded().

Referenced by Rectangle< ValueType >::reduced().

## ◆ reduced() [2/2]

template<typename ValueType >

Rectangle Rectangle< ValueType >::reduced | ( | ValueType | delta | ) | const
| noexcept

Returns a rectangle that is smaller than this one by a given amount.

Effectively, the rectangle returned is (x + delta, y + delta, w - delta * 2, h - delta * 2).

See also
  reduce, expand, expanded

References Rectangle< ValueType >::reduced().

## ◆ removeFromTop()

template<typename ValueType >

Rectangle Rectangle< ValueType >::removeFromTop | ( | ValueType | amountToRemove | ) |
| noexcept

Removes a strip from the top of this rectangle, reducing this rectangle by the specified amount and returning the section that was removed.

E.g. if this rectangle is (100, 100, 300, 300) and amountToRemove is 50, this will return (100, 100, 300, 50) and leave this rectangle as (100, 150, 300, 250).

If amountToRemove is greater than the height of this rectangle, it'll be clipped to that value.

References jmin(), and gl::r.

## ◆ removeFromLeft()

template<typename ValueType >

Rectangle Rectangle< ValueType >::removeFromLeft | ( | ValueType | amountToRemove | ) |
| noexcept

Removes a strip from the left-hand edge of this rectangle, reducing this rectangle by the specified amount and returning the section that was removed.

E.g. if this rectangle is (100, 100, 300, 300) and amountToRemove is 50, this will return (100, 100, 50, 300) and leave this rectangle as (150, 100, 250, 300).

If amountToRemove is greater than the width of this rectangle, it'll be clipped to that value.

References jmin(), and gl::r.

## ◆ removeFromRight()

template<typename ValueType >

Rectangle Rectangle< ValueType >::removeFromRight | ( | ValueType | amountToRemove | ) |
| noexcept

Removes a strip from the right-hand edge of this rectangle, reducing this rectangle by the specified amount and returning the section that was removed.

E.g. if this rectangle is (100, 100, 300, 300) and amountToRemove is 50, this will return (350, 100, 50, 300) and leave this rectangle as (100, 100, 250, 300).

If amountToRemove is greater than the width of this rectangle, it'll be clipped to that value.

References jmin(), and gl::r.

## ◆ removeFromBottom()

template<typename ValueType >

Rectangle Rectangle< ValueType >::removeFromBottom | ( | ValueType | amountToRemove | ) |
| noexcept

Removes a strip from the bottom of this rectangle, reducing this rectangle by the specified amount and returning the section that was removed.

E.g. if this rectangle is (100, 100, 300, 300) and amountToRemove is 50, this will return (100, 350, 300, 50) and leave this rectangle as (100, 100, 300, 250).

If amountToRemove is greater than the height of this rectangle, it'll be clipped to that value.

References jmin(), and gl::r.

## ◆ getConstrainedPoint()

template<typename ValueType >

Point< ValueType > Rectangle< ValueType >::getConstrainedPoint | ( | Point< ValueType > | point | ) | const
| noexcept

Returns the nearest point to the specified point that lies within this rectangle.

References jlimit().

Referenced by Rectangle< ValueType >::constrainedWithin().

## ◆ getRelativePoint()

template<typename ValueType >
template<typename FloatType >

Point< ValueType > Rectangle< ValueType >::getRelativePoint | ( | FloatType | relativeX,
|  | FloatType | relativeY
| ) |  | const
| noexcept

Returns a point within this rectangle, specified as proportional coordinates.

The relative X and Y values should be between 0 and 1, where 0 is the left or top of this rectangle, and 1 is the right or bottom. (Out-of-bounds values will return a point outside the rectangle).

## ◆ proportionOfWidth()

template<typename ValueType >
template<typename FloatType >

ValueType Rectangle< ValueType >::proportionOfWidth | ( | FloatType | proportion | ) | const
| noexcept

Returns a proportion of the width of this rectangle.

Referenced by Rectangle< ValueType >::getProportion().

## ◆ proportionOfHeight()

template<typename ValueType >
template<typename FloatType >

ValueType Rectangle< ValueType >::proportionOfHeight | ( | FloatType | proportion | ) | const
| noexcept

Returns a proportion of the height of this rectangle.

Referenced by Rectangle< ValueType >::getProportion().

## ◆ getProportion()

template<typename ValueType >
template<typename FloatType >

Rectangle Rectangle< ValueType >::getProportion | ( | Rectangle< FloatType > | proportionalRect | ) | const
| noexcept

Returns a rectangle based on some proportional coordinates relative to this one.

So for example getProportion ({ 0.25f, 0.25f, 0.5f, 0.5f }) would return a rectangle of half the original size, with the same centre.

References Rectangle< ValueType >::proportionOfHeight(), and Rectangle< ValueType >::proportionOfWidth().

## ◆ operator==()

template<typename ValueType >

bool Rectangle< ValueType >::operator== | ( | const Rectangle< ValueType > & | other | ) | const
| noexcept

Returns true if the two rectangles are identical.

## ◆ operator!=()

template<typename ValueType >

bool Rectangle< ValueType >::operator!= | ( | const Rectangle< ValueType > & | other | ) | const
| noexcept

Returns true if the two rectangles are not identical.

## ◆ contains() [1/3]

template<typename ValueType >

bool Rectangle< ValueType >::contains | ( | ValueType | xCoord,
|  | ValueType | yCoord
| ) |  | const
| noexcept

Returns true if this coordinate is inside the rectangle.

Referenced by RectangleList< ValueType >::add(), and Rectangle< ValueType >::intersects().

## ◆ contains() [2/3]

template<typename ValueType >

bool Rectangle< ValueType >::contains | ( | Point< ValueType > | point | ) | const
| noexcept

Returns true if this coordinate is inside the rectangle.

## ◆ contains() [3/3]

template<typename ValueType >

bool Rectangle< ValueType >::contains | ( | Rectangle< ValueType > | other | ) | const
| noexcept

Returns true if this other rectangle is completely inside this one.

## ◆ intersects() [1/2]

template<typename ValueType >

bool Rectangle< ValueType >::intersects | ( | Rectangle< ValueType > | other | ) | const
| noexcept

Returns true if any part of another rectangle overlaps this one.

Referenced by RectangleList< ValueType >::add().

## ◆ intersects() [2/2]

template<typename ValueType >

bool Rectangle< ValueType >::intersects | ( | const Line< ValueType > & | line | ) | const
| noexcept

Returns true if any part of the given line lies inside this rectangle.

References Rectangle< ValueType >::contains(), Rectangle< ValueType >::getBottomLeft(), Rectangle< ValueType >::getBottomRight(), Rectangle< ValueType >::getTopLeft(), and Rectangle< ValueType >::getTopRight().

## ◆ getIntersection()

template<typename ValueType >

Rectangle Rectangle< ValueType >::getIntersection | ( | Rectangle< ValueType > | other | ) | const
| noexcept

Returns the region that is the overlap between this and another rectangle.

If the two rectangles don't overlap, the rectangle returned will be empty.

References jmax(), jmin(), gl::nx, and gl::ny.

## ◆ intersectRectangle() [1/2]

template<typename ValueType >

bool Rectangle< ValueType >::intersectRectangle | ( | ValueType & | otherX,
|  | ValueType & | otherY,
|  | ValueType & | otherW,
|  | ValueType & | otherH
| ) |  | const
| noexcept

Clips a set of rectangle coordinates so that they lie only within this one.

This is a non-static version of intersectRectangles(). Returns false if the two rectangles didn't overlap.

References jmax(), jmin(), gl::maxX, and gl::maxY.

Referenced by RectangleList< ValueType >::clipTo(), RectangleList< ValueType >::getIntersectionWith(), and Rectangle< ValueType >::intersectRectangle().

## ◆ intersectRectangle() [2/2]

template<typename ValueType >

bool Rectangle< ValueType >::intersectRectangle | ( | Rectangle< ValueType > & | rectangleToClip | ) | const
| noexcept

Clips a rectangle so that it lies only within this one.

Returns false if the two rectangles didn't overlap.

References Rectangle< ValueType >::intersectRectangle().

## ◆ getUnion()

template<typename ValueType >

Rectangle Rectangle< ValueType >::getUnion | ( | Rectangle< ValueType > | other | ) | const
| noexcept

Returns the smallest rectangle that contains both this one and the one passed-in.

If either this or the other rectangle are empty, they will not be counted as part of the resulting region.

References Rectangle< ValueType >::isEmpty(), jmax(), and jmin().

## ◆ enlargeIfAdjacent()

template<typename ValueType >

bool Rectangle< ValueType >::enlargeIfAdjacent | ( | Rectangle< ValueType > | other | ) |
| noexcept

If this rectangle merged with another one results in a simple rectangle, this will set this rectangle to the result, and return true.

Returns false and does nothing to this rectangle if the two rectangles don't overlap, or if they form a complex region.

References Rectangle< ValueType >::getBottom(), Rectangle< ValueType >::getRight(), jmax(), and jmin().

## ◆ reduceIfPartlyContainedIn()

template<typename ValueType >

bool Rectangle< ValueType >::reduceIfPartlyContainedIn | ( | Rectangle< ValueType > | other | ) |
| noexcept

If after removing another rectangle from this one the result is a simple rectangle, this will set this object's bounds to be the result, and return true.

Returns false and does nothing to this rectangle if the two rectangles don't overlap, or if removing the other one would form a complex region.

References gl::b, and gl::r.

## ◆ constrainedWithin()

template<typename ValueType >

Rectangle Rectangle< ValueType >::constrainedWithin | ( | Rectangle< ValueType > | areaToFitWithin | ) | const
| noexcept

Tries to fit this rectangle within a target area, returning the result.

If this rectangle is not completely inside the target area, then it'll be shifted (without changing its size) so that it lies within the target. If it is larger than the target rectangle in either dimension, then that dimension will be reduced to fit within the target.

References Rectangle< ValueType >::getConstrainedPoint(), jmin(), and Rectangle< ValueType >::withSize().

## ◆ transformedBy()

template<typename ValueType >

Rectangle Rectangle< ValueType >::transformedBy | ( | const AffineTransform & | transform | ) | const
| noexcept

Returns the smallest rectangle that can contain the shape created by applying a transform to this rectangle.

This should only be used on floating point rectangles.

References jmax(), jmin(), gl::r, gl::transform, gl::x1, gl::x2, gl::y1, and gl::y2.

## ◆ getSmallestIntegerContainer()

template<typename ValueType >

Rectangle< int > Rectangle< ValueType >::getSmallestIntegerContainer | ( |  | ) | const
| noexcept

Returns the smallest integer-aligned rectangle that completely contains this one.

This is only relevant for floating-point rectangles, of course.

See also
  toFloat(), toNearestInt(), toNearestIntEdges()

References Rectangle< ValueType >::leftTopRightBottom().

## ◆ toNearestInt()

template<typename ValueType >

Rectangle< int > Rectangle< ValueType >::toNearestInt | ( |  | ) | const
| noexcept

Casts this rectangle to a Rectangle<int>.

This uses roundToInt to snap x, y, width and height to the nearest integer (losing precision). If the rectangle already uses integers, this will simply return a copy.

See also
  getSmallestIntegerContainer(), toNearestIntEdges()

References roundToInt().

## ◆ toNearestIntEdges()

template<typename ValueType >

Rectangle< int > Rectangle< ValueType >::toNearestIntEdges | ( |  | ) | const
| noexcept

Casts this rectangle to a Rectangle<int>.

This uses roundToInt to snap top, left, right and bottom to the nearest integer (losing precision). If the rectangle already uses integers, this will simply return a copy.

See also
  getSmallestIntegerContainer(), toNearestInt()

References Rectangle< ValueType >::getBottom(), Rectangle< ValueType >::getRight(), Rectangle< ValueType >::leftTopRightBottom(), and roundToInt().

## ◆ toFloat()

template<typename ValueType >

Rectangle< float > Rectangle< ValueType >::toFloat | ( |  | ) | const
| noexcept

Casts this rectangle to a Rectangle<float>.

See also
  getSmallestIntegerContainer

## ◆ toDouble()

template<typename ValueType >

Rectangle< double > Rectangle< ValueType >::toDouble | ( |  | ) | const
| noexcept

Casts this rectangle to a Rectangle<double>.

See also
  getSmallestIntegerContainer

## ◆ toType()

template<typename ValueType >
template<typename TargetType >

Rectangle< TargetType > Rectangle< ValueType >::toType | ( |  | ) | const
| noexcept

Casts this rectangle to a Rectangle with the given type.

If the target type is a conversion from float to int, then the conversion will be done using getSmallestIntegerContainer().

References gl::r.

## ◆ findAreaContainingPoints()

template<typename ValueType >

static Rectangle Rectangle< ValueType >::findAreaContainingPoints | ( | const Point< ValueType > * | points,
|  | int | numPoints
| ) |  |
| staticnoexcept

Returns the smallest Rectangle that can contain a set of points.

References jmax(), jmin(), gl::maxX, gl::maxY, gl::minY, gl::points, gl::x, and gl::y.

Referenced by Parallelogram< ValueType >::getBoundingBox().

## ◆ intersectRectangles()

template<typename ValueType >

static bool Rectangle< ValueType >::intersectRectangles | ( | ValueType & | x1,
|  | ValueType & | y1,
|  | ValueType & | w1,
|  | ValueType & | h1,
|  | ValueType | x2,
|  | ValueType | y2,
|  | ValueType | w2,
|  | ValueType | h2
| ) |  |
| staticnoexcept

Static utility to intersect two sets of rectangular coordinates.

Returns false if the two regions didn't overlap.

See also
  intersectRectangle

References jmax(), jmin(), gl::w1, gl::w2, gl::x, gl::x1, gl::x2, gl::y, gl::y1, and gl::y2.

## ◆ toString()

template<typename ValueType >

String Rectangle< ValueType >::toString | ( |  | ) | const

Creates a string describing this rectangle.

The string will be of the form "x y width height", e.g. "100 100 400 200".

Coupled with the fromString() method, this is very handy for things like storing rectangles (particularly component positions) in XML attributes.

See also
  fromString

References gl::s.

## ◆ fromString()

template<typename ValueType >

static Rectangle Rectangle< ValueType >::fromString | ( | StringRef | stringVersion | ) |
| static

Parses a string containing a rectangle's details.

The string should contain 4 numeric tokens, in the form "x y width height". They can be comma or whitespace separated.

This method is intended to go with the toString() method, to form an easy way of saving/loading rectangles as strings.

See also
  toString

References StringArray::addTokens(), CharPointer_UTF8::findEndOfWhitespace(), and StringRef::text.

The documentation for this class was generated from the following file:

- juce_Rectangle.h