JUCE  v5.1.1-3-g1a0b28c73
JUCE API
Rectangle< ValueType > Class Template Reference

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

#include <juce_Rectangle.h>

Collaboration diagram for Rectangle< ValueType >:

Public Member Functions

 Rectangle () noexcept
 Creates a rectangle of zero size. More...
 
 Rectangle (const Rectangle &other) noexcept
 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 () noexcept
 Destructor. More...
 
Rectangle constrainedWithin (Rectangle areaToFitWithin) const noexcept
 Tries to fit this rectangle within a target area, returning the result. 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 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...
 
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...
 
ValueType getAspectRatio (bool widthOverHeight=true) const noexcept
 Returns the aspect ratio of the rectangle's width / height. More...
 
ValueType getBottom () const noexcept
 Returns the y coordinate of the rectangle's bottom edge. 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...
 
Point< ValueType > getCentre () const noexcept
 Returns the centre point of the rectangle. 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 > getConstrainedPoint (Point< ValueType > point) const noexcept
 Returns the nearest point to the specified point that lies within this rectangle. More...
 
ValueType getHeight () const noexcept
 Returns the height of the rectangle. More...
 
Range< ValueType > getHorizontalRange () const noexcept
 Returns the rectangle's left and right positions as a Range. More...
 
Rectangle getIntersection (Rectangle other) const noexcept
 Returns the region that is the overlap between this and another rectangle. More...
 
Point< ValueType > getPosition () const noexcept
 Returns the rectangle's top-left position as a Point. More...
 
template<typename FloatType >
Rectangle getProportion (Rectangle< FloatType > proportionalRect) const noexcept
 Returns a rectangle based on some proportional coordinates relative to this one. More...
 
template<typename FloatType >
Point< ValueType > getRelativePoint (FloatType relativeX, FloatType relativeY) const noexcept
 Returns a point within this rectangle, specified as proportional coordinates. More...
 
ValueType getRight () const noexcept
 Returns the x coordinate of the rectangle's right-hand-side. More...
 
Rectangle< intgetSmallestIntegerContainer () const noexcept
 Returns the smallest integer-aligned rectangle that completely contains this one. 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...
 
Rectangle getUnion (Rectangle other) const noexcept
 Returns the smallest rectangle that contains both this one and the one passed-in. More...
 
Range< ValueType > getVerticalRange () const noexcept
 Returns the rectangle's top and bottom positions as a Range. More...
 
ValueType getWidth () const noexcept
 Returns the width of the rectangle. 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...
 
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...
 
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...
 
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...
 
bool operator!= (const Rectangle &other) const noexcept
 Returns true if the two rectangles are not identical. 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...
 
Rectangle operator+ (Point< ValueType > deltaPosition) const noexcept
 Returns a rectangle which is the same as this one moved by a given amount. More...
 
Rectangleoperator+= (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...
 
Rectangleoperator-= (Point< ValueType > deltaPosition) noexcept
 Moves this rectangle by a given amount. 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...
 
Rectangleoperator= (const Rectangle &other) noexcept
 
bool operator== (const Rectangle &other) const noexcept
 Returns true if the two rectangles are identical. More...
 
template<typename FloatType >
ValueType proportionOfHeight (FloatType proportion) const noexcept
 Returns a proportion of the height of this rectangle. More...
 
template<typename FloatType >
ValueType proportionOfWidth (FloatType proportion) const noexcept
 Returns a proportion of the width of this rectangle. 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...
 
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 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...
 
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 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...
 
void setBottom (ValueType newBottom) noexcept
 Adjusts the height so that the bottom edge of the rectangle has this new value. More...
 
void setBounds (ValueType newX, ValueType newY, ValueType newWidth, ValueType newHeight) noexcept
 Changes all the rectangle's coordinates. 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 setHeight (ValueType newHeight) noexcept
 Changes the rectangle's height. More...
 
void setHorizontalRange (Range< ValueType > range) noexcept
 Changes the position of the rectangle's left and right edges. 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...
 
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...
 
void setRight (ValueType newRight) noexcept
 Adjusts the width so that the right-hand edge of the rectangle has this new value. More...
 
void setSize (ValueType newWidth, ValueType newHeight) noexcept
 Changes the rectangle's size, leaving the position of its top-left corner unchanged. More...
 
void setTop (ValueType newTop) noexcept
 Moves the y position, adjusting the height so that the bottom edge remains in the same place. More...
 
void setVerticalRange (Range< ValueType > range) noexcept
 Changes the position of the rectangle's top and bottom edges. More...
 
void setWidth (ValueType newWidth) noexcept
 Changes the rectangle's width. 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...
 
Rectangle< double > toDouble () const noexcept
 Casts this rectangle to a Rectangle<double>. More...
 
Rectangle< float > toFloat () const noexcept
 Casts this rectangle to a Rectangle<float>. More...
 
Rectangle< inttoNearestInt () const noexcept
 Casts this rectangle to a Rectangle<int>. More...
 
String toString () const
 Creates a string describing this rectangle. More...
 
template<typename TargetType >
Rectangle< TargetType > toType () const noexcept
 Casts this rectangle to a Rectangle with the given type. 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...
 
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 withBottom (ValueType newBottom) const noexcept
 Returns a new rectangle with a different bottom edge position, but the same top edge as this one. More...
 
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...
 
Rectangle withCentre (Point< ValueType > newCentre) const noexcept
 Returns a rectangle with the same size as this one, but a new centre position. More...
 
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...
 
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...
 
Rectangle withPosition (ValueType newX, ValueType newY) const noexcept
 Returns a rectangle with the same size as this one, but a new position. More...
 
Rectangle withPosition (Point< ValueType > newPos) const noexcept
 Returns a rectangle with the same size as this one, but a new position. More...
 
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...
 
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...
 
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...
 
Rectangle withSizeKeepingCentre (ValueType newWidth, ValueType newHeight) const noexcept
 Returns a rectangle with the same centre position as this one, but a new size. More...
 
Rectangle withTop (ValueType newTop) const noexcept
 Returns a new rectangle with a different y position, but the same bottom edge as this one. More...
 
Rectangle withTrimmedBottom (ValueType amountToRemove) const noexcept
 Returns a version of this rectangle with the given amount removed from its bottom edge. More...
 
Rectangle withTrimmedLeft (ValueType amountToRemove) const noexcept
 Returns a version of this rectangle with the given amount removed from its left-hand edge. More...
 
Rectangle withTrimmedRight (ValueType amountToRemove) const noexcept
 Returns a version of this rectangle with the given amount removed from its right-hand edge. More...
 
Rectangle withTrimmedTop (ValueType amountToRemove) const noexcept
 Returns a version of this rectangle with the given amount removed from its top edge. More...
 
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...
 
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...
 
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...
 
Rectangle withZeroOrigin () const noexcept
 Returns a rectangle whose size is the same as this one, but whose top-left position is (0, 0). More...
 

Static Public Member Functions

static Rectangle findAreaContainingPoints (const Point< ValueType > *points, int numPoints) noexcept
 Returns the smallest Rectangle that can contain a set of points. More...
 
static Rectangle fromString (StringRef stringVersion)
 Parses a string containing a rectangle's details. 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 leftTopRightBottom (ValueType left, ValueType top, ValueType right, ValueType bottom) noexcept
 Creates a Rectangle from a set of left, right, top, bottom coordinates. More...
 

Private Member Functions

void copyWithRounding (Rectangle< int > &result) const noexcept
 
void copyWithRounding (Rectangle< float > &result) const noexcept
 
void copyWithRounding (Rectangle< double > &result) const noexcept
 

Static Private Member Functions

static int ceilAsInt (int n) noexcept
 
static int ceilAsInt (float n) noexcept
 
static int ceilAsInt (double n) noexcept
 
static int floorAsInt (int n) noexcept
 
static int floorAsInt (float n) noexcept
 
static int floorAsInt (double n) noexcept
 
static ValueType parseIntAfterSpace (StringRef s) noexcept
 

Private Attributes

ValueType h
 
Point< ValueType > pos
 
ValueType w
 

Friends

template<typename OtherType >
class Rectangle
 

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 ( )
inlinenoexcept

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 > &  other)
inlinenoexcept

Creates a copy of another rectangle.

◆ Rectangle() [3/5]

template<typename ValueType>
Rectangle< ValueType >::Rectangle ( ValueType  initialX,
ValueType  initialY,
ValueType  width,
ValueType  height 
)
inlinenoexcept

Creates a rectangle with a given position and size.

◆ Rectangle() [4/5]

template<typename ValueType>
Rectangle< ValueType >::Rectangle ( ValueType  width,
ValueType  height 
)
inlinenoexcept

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 
)
inlinenoexcept

Creates a Rectangle from the positions of two opposite corners.

References Rectangle< ValueType >::h, and Rectangle< ValueType >::w.

◆ ~Rectangle()

template<typename ValueType>
Rectangle< ValueType >::~Rectangle ( )
inlinenoexcept

Destructor.

Member Function Documentation

◆ ceilAsInt() [1/3]

template<typename ValueType>
static int Rectangle< ValueType >::ceilAsInt ( int  n)
inlinestaticprivatenoexcept

◆ ceilAsInt() [2/3]

template<typename ValueType>
static int Rectangle< ValueType >::ceilAsInt ( float  n)
inlinestaticprivatenoexcept

◆ ceilAsInt() [3/3]

template<typename ValueType>
static int Rectangle< ValueType >::ceilAsInt ( double  n)
inlinestaticprivatenoexcept

◆ constrainedWithin()

template<typename ValueType>
Rectangle Rectangle< ValueType >::constrainedWithin ( Rectangle< ValueType >  areaToFitWithin) const
inlinenoexcept

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 >::h, jlimit(), juce::jmin(), Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ contains() [1/3]

template<typename ValueType>
bool Rectangle< ValueType >::contains ( ValueType  xCoord,
ValueType  yCoord 
) const
inlinenoexcept

Returns true if this coordinate is inside the rectangle.

References Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

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

◆ contains() [2/3]

template<typename ValueType>
bool Rectangle< ValueType >::contains ( Point< ValueType >  point) const
inlinenoexcept

Returns true if this coordinate is inside the rectangle.

References Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ contains() [3/3]

template<typename ValueType>
bool Rectangle< ValueType >::contains ( Rectangle< ValueType >  other) const
inlinenoexcept

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

References Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ copyWithRounding() [1/3]

template<typename ValueType>
void Rectangle< ValueType >::copyWithRounding ( Rectangle< int > &  result) const
inlineprivatenoexcept

◆ copyWithRounding() [2/3]

template<typename ValueType>
void Rectangle< ValueType >::copyWithRounding ( Rectangle< float > &  result) const
inlineprivatenoexcept

◆ copyWithRounding() [3/3]

template<typename ValueType>
void Rectangle< ValueType >::copyWithRounding ( Rectangle< double > &  result) const
inlineprivatenoexcept

◆ enlargeIfAdjacent()

template<typename ValueType>
bool Rectangle< ValueType >::enlargeIfAdjacent ( Rectangle< ValueType >  other)
inlinenoexcept

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(), Rectangle< ValueType >::h, juce::jmax(), juce::jmin(), Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ expand()

template<typename ValueType>
void Rectangle< ValueType >::expand ( ValueType  deltaX,
ValueType  deltaY 
)
inlinenoexcept

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 Rectangle< ValueType >::h, juce::jmax(), Rectangle< ValueType >::pos, Rectangle< ValueType >::setBounds(), and Rectangle< ValueType >::w.

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

◆ expanded() [1/2]

template<typename ValueType>
Rectangle Rectangle< ValueType >::expanded ( ValueType  deltaX,
ValueType  deltaY 
) const
inlinenoexcept

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 Rectangle< ValueType >::h, juce::jmax(), Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

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

◆ expanded() [2/2]

template<typename ValueType>
Rectangle Rectangle< ValueType >::expanded ( ValueType  delta) const
inlinenoexcept

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().

◆ findAreaContainingPoints()

template<typename ValueType>
static Rectangle Rectangle< ValueType >::findAreaContainingPoints ( const Point< ValueType > *  points,
int  numPoints 
)
inlinestaticnoexcept

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

References juce::jmax(), and juce::jmin().

◆ floorAsInt() [1/3]

template<typename ValueType>
static int Rectangle< ValueType >::floorAsInt ( int  n)
inlinestaticprivatenoexcept

◆ floorAsInt() [2/3]

template<typename ValueType>
static int Rectangle< ValueType >::floorAsInt ( float  n)
inlinestaticprivatenoexcept

◆ floorAsInt() [3/3]

template<typename ValueType>
static int Rectangle< ValueType >::floorAsInt ( double  n)
inlinestaticprivatenoexcept

◆ fromString()

template<typename ValueType>
static Rectangle Rectangle< ValueType >::fromString ( StringRef  stringVersion)
inlinestatic

Parses a string containing a rectangle's details.

The string should contain 4 integer 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(), JUCE_DEPRECATED_WITH_BODY, Rectangle< ValueType >::parseIntAfterSpace(), StringRef::text, and Rectangle< ValueType >::transformedBy().

◆ getAspectRatio()

template<typename ValueType>
ValueType Rectangle< ValueType >::getAspectRatio ( bool  widthOverHeight = true) const
inlinenoexcept

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.

References Rectangle< ValueType >::h, and Rectangle< ValueType >::w.

◆ getBottom()

◆ getBottomLeft()

template<typename ValueType>
Point<ValueType> Rectangle< ValueType >::getBottomLeft ( ) const
inlinenoexcept

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

References Rectangle< ValueType >::h, and Rectangle< ValueType >::pos.

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

◆ getBottomRight()

template<typename ValueType>
Point<ValueType> Rectangle< ValueType >::getBottomRight ( ) const
inlinenoexcept

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

References Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

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

◆ getCentre()

template<typename ValueType>
Point<ValueType> Rectangle< ValueType >::getCentre ( ) const
inlinenoexcept

Returns the centre point of the rectangle.

References Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ getCentreX()

template<typename ValueType>
ValueType Rectangle< ValueType >::getCentreX ( ) const
inlinenoexcept

Returns the x coordinate of the rectangle's centre.

References Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

Referenced by Draggable3DOrientation::mousePosToProportion().

◆ getCentreY()

template<typename ValueType>
ValueType Rectangle< ValueType >::getCentreY ( ) const
inlinenoexcept

Returns the y coordinate of the rectangle's centre.

References Rectangle< ValueType >::h, and Rectangle< ValueType >::pos.

Referenced by Draggable3DOrientation::mousePosToProportion().

◆ getConstrainedPoint()

template<typename ValueType>
Point<ValueType> Rectangle< ValueType >::getConstrainedPoint ( Point< ValueType >  point) const
inlinenoexcept

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

References Rectangle< ValueType >::h, jlimit(), Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ getHeight()

◆ getHorizontalRange()

template<typename ValueType>
Range<ValueType> Rectangle< ValueType >::getHorizontalRange ( ) const
inlinenoexcept

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

References Rectangle< ValueType >::pos, Rectangle< ValueType >::w, and Range< ValueType >::withStartAndLength().

◆ getIntersection()

template<typename ValueType>
Rectangle Rectangle< ValueType >::getIntersection ( Rectangle< ValueType >  other) const
inlinenoexcept

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 Rectangle< ValueType >::h, juce::jmax(), juce::jmin(), Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

Referenced by RenderingHelpers::SavedStateBase< SoftwareRendererSavedState >::renderImage().

◆ getPosition()

template<typename ValueType>
Point<ValueType> Rectangle< ValueType >::getPosition ( ) const
inlinenoexcept

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

References Rectangle< ValueType >::pos.

◆ getProportion()

template<typename ValueType>
template<typename FloatType >
Rectangle Rectangle< ValueType >::getProportion ( Rectangle< FloatType >  proportionalRect) const
inlinenoexcept

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 >::h, Rectangle< ValueType >::pos, Rectangle< ValueType >::proportionOfHeight(), Rectangle< ValueType >::proportionOfWidth(), and Rectangle< ValueType >::w.

◆ getRelativePoint()

template<typename ValueType>
template<typename FloatType >
Point<ValueType> Rectangle< ValueType >::getRelativePoint ( FloatType  relativeX,
FloatType  relativeY 
) const
inlinenoexcept

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).

References Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ getRight()

◆ getSmallestIntegerContainer()

template<typename ValueType>
Rectangle<int> Rectangle< ValueType >::getSmallestIntegerContainer ( ) const
inlinenoexcept

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()

References Rectangle< ValueType >::ceilAsInt(), Rectangle< ValueType >::floorAsInt(), Rectangle< ValueType >::h, Rectangle< ValueType >::leftTopRightBottom(), Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

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

◆ getTopLeft()

template<typename ValueType>
Point<ValueType> Rectangle< ValueType >::getTopLeft ( ) const
inlinenoexcept

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

References Rectangle< ValueType >::pos.

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

◆ getTopRight()

template<typename ValueType>
Point<ValueType> Rectangle< ValueType >::getTopRight ( ) const
inlinenoexcept

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

References Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

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

◆ getUnion()

template<typename ValueType>
Rectangle Rectangle< ValueType >::getUnion ( Rectangle< ValueType >  other) const
inlinenoexcept

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 >::h, Rectangle< ValueType >::isEmpty(), juce::jmax(), juce::jmin(), Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ getVerticalRange()

template<typename ValueType>
Range<ValueType> Rectangle< ValueType >::getVerticalRange ( ) const
inlinenoexcept

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

References Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Range< ValueType >::withStartAndLength().

◆ getWidth()

◆ getX()

◆ getY()

◆ intersectRectangle() [1/2]

template<typename ValueType>
bool Rectangle< ValueType >::intersectRectangle ( ValueType &  otherX,
ValueType &  otherY,
ValueType &  otherW,
ValueType &  otherH 
) const
inlinenoexcept

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 Rectangle< ValueType >::h, juce::jmax(), juce::jmin(), Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

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

◆ intersectRectangle() [2/2]

template<typename ValueType>
bool Rectangle< ValueType >::intersectRectangle ( Rectangle< ValueType > &  rectangleToClip) const
inlinenoexcept

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

Returns false if the two rectangles didn't overlap.

References Rectangle< ValueType >::intersectRectangle().

◆ 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 
)
inlinestaticnoexcept

Static utility to intersect two sets of rectangular coordinates.

Returns false if the two regions didn't overlap.

See also
intersectRectangle

References juce::jmax(), and juce::jmin().

◆ intersects() [1/2]

template<typename ValueType>
bool Rectangle< ValueType >::intersects ( Rectangle< ValueType >  other) const
inlinenoexcept

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

References Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

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

◆ intersects() [2/2]

template<typename ValueType>
bool Rectangle< ValueType >::intersects ( const Line< ValueType > &  line) const
inlinenoexcept

◆ isEmpty()

◆ isFinite()

template<typename ValueType>
bool Rectangle< ValueType >::isFinite ( ) const
inlinenoexcept

◆ leftTopRightBottom()

template<typename ValueType>
static Rectangle Rectangle< ValueType >::leftTopRightBottom ( ValueType  left,
ValueType  top,
ValueType  right,
ValueType  bottom 
)
inlinestaticnoexcept

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.

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

◆ operator!=()

template<typename ValueType>
bool Rectangle< ValueType >::operator!= ( const Rectangle< ValueType > &  other) const
inlinenoexcept

Returns true if the two rectangles are not identical.

References Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ operator*()

template<typename ValueType>
template<typename FloatType >
Rectangle Rectangle< ValueType >::operator* ( FloatType  scaleFactor) const
inlinenoexcept

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().

◆ operator*=() [1/2]

template<typename ValueType>
template<typename FloatType >
Rectangle Rectangle< ValueType >::operator*= ( FloatType  scaleFactor)
inlinenoexcept

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 Rectangle< ValueType >::copyWithRounding(), Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ operator*=() [2/2]

template<typename ValueType>
template<typename FloatType >
Rectangle Rectangle< ValueType >::operator*= ( Point< FloatType >  scaleFactor)
inlinenoexcept

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 Rectangle< ValueType >::copyWithRounding(), Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ operator+()

template<typename ValueType>
Rectangle Rectangle< ValueType >::operator+ ( Point< ValueType >  deltaPosition) const
inlinenoexcept

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

References Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ operator+=()

template<typename ValueType>
Rectangle& Rectangle< ValueType >::operator+= ( Point< ValueType >  deltaPosition)
inlinenoexcept

Moves this rectangle by a given amount.

References Rectangle< ValueType >::pos.

◆ operator-()

template<typename ValueType>
Rectangle Rectangle< ValueType >::operator- ( Point< ValueType >  deltaPosition) const
inlinenoexcept

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

References Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ operator-=()

template<typename ValueType>
Rectangle& Rectangle< ValueType >::operator-= ( Point< ValueType >  deltaPosition)
inlinenoexcept

Moves this rectangle by a given amount.

References Rectangle< ValueType >::pos.

◆ operator/()

template<typename ValueType>
template<typename FloatType >
Rectangle Rectangle< ValueType >::operator/ ( FloatType  scaleFactor) const
inlinenoexcept

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

◆ operator/=() [1/2]

template<typename ValueType>
template<typename FloatType >
Rectangle Rectangle< ValueType >::operator/= ( FloatType  scaleFactor)
inlinenoexcept

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

References Rectangle< ValueType >::copyWithRounding(), Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ operator/=() [2/2]

template<typename ValueType>
template<typename FloatType >
Rectangle Rectangle< ValueType >::operator/= ( Point< FloatType >  scaleFactor)
inlinenoexcept

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

References Rectangle< ValueType >::copyWithRounding(), Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ operator=()

template<typename ValueType>
Rectangle& Rectangle< ValueType >::operator= ( const Rectangle< ValueType > &  other)
inlinenoexcept

◆ operator==()

template<typename ValueType>
bool Rectangle< ValueType >::operator== ( const Rectangle< ValueType > &  other) const
inlinenoexcept

Returns true if the two rectangles are identical.

References Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ parseIntAfterSpace()

template<typename ValueType>
static ValueType Rectangle< ValueType >::parseIntAfterSpace ( StringRef  s)
inlinestaticprivatenoexcept

◆ proportionOfHeight()

template<typename ValueType>
template<typename FloatType >
ValueType Rectangle< ValueType >::proportionOfHeight ( FloatType  proportion) const
inlinenoexcept

Returns a proportion of the height of this rectangle.

References Rectangle< ValueType >::h.

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

◆ proportionOfWidth()

template<typename ValueType>
template<typename FloatType >
ValueType Rectangle< ValueType >::proportionOfWidth ( FloatType  proportion) const
inlinenoexcept

Returns a proportion of the width of this rectangle.

References Rectangle< ValueType >::w.

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

◆ reduce()

template<typename ValueType>
void Rectangle< ValueType >::reduce ( ValueType  deltaX,
ValueType  deltaY 
)
inlinenoexcept

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
inlinenoexcept

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
inlinenoexcept

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().

◆ reduceIfPartlyContainedIn()

template<typename ValueType>
bool Rectangle< ValueType >::reduceIfPartlyContainedIn ( Rectangle< ValueType >  other)
inlinenoexcept

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 Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ removeFromBottom()

template<typename ValueType>
Rectangle Rectangle< ValueType >::removeFromBottom ( ValueType  amountToRemove)
inlinenoexcept

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, 250, 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 Rectangle< ValueType >::h, juce::jmin(), Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ removeFromLeft()

template<typename ValueType>
Rectangle Rectangle< ValueType >::removeFromLeft ( ValueType  amountToRemove)
inlinenoexcept

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 Rectangle< ValueType >::h, juce::jmin(), Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ removeFromRight()

template<typename ValueType>
Rectangle Rectangle< ValueType >::removeFromRight ( ValueType  amountToRemove)
inlinenoexcept

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 (250, 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 Rectangle< ValueType >::h, juce::jmin(), Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ removeFromTop()

template<typename ValueType>
Rectangle Rectangle< ValueType >::removeFromTop ( ValueType  amountToRemove)
inlinenoexcept

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 Rectangle< ValueType >::h, juce::jmin(), Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ setBottom()

template<typename ValueType>
void Rectangle< ValueType >::setBottom ( ValueType  newBottom)
inlinenoexcept

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 Rectangle< ValueType >::h, juce::jmin(), and Rectangle< ValueType >::pos.

◆ setBounds()

template<typename ValueType>
void Rectangle< ValueType >::setBounds ( ValueType  newX,
ValueType  newY,
ValueType  newWidth,
ValueType  newHeight 
)
inlinenoexcept

Changes all the rectangle's coordinates.

References Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

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

◆ setCentre() [1/2]

template<typename ValueType>
void Rectangle< ValueType >::setCentre ( ValueType  newCentreX,
ValueType  newCentreY 
)
inlinenoexcept

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

References Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ setCentre() [2/2]

template<typename ValueType>
void Rectangle< ValueType >::setCentre ( Point< ValueType >  newCentre)
inlinenoexcept

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

References Rectangle< ValueType >::setCentre().

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

◆ setHeight()

template<typename ValueType>
void Rectangle< ValueType >::setHeight ( ValueType  newHeight)
inlinenoexcept

Changes the rectangle's height.

References Rectangle< ValueType >::h.

◆ setHorizontalRange()

template<typename ValueType>
void Rectangle< ValueType >::setHorizontalRange ( Range< ValueType >  range)
inlinenoexcept

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

References Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ setLeft()

template<typename ValueType>
void Rectangle< ValueType >::setLeft ( ValueType  newLeft)
inlinenoexcept

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 juce::jmax(), Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ setPosition() [1/2]

template<typename ValueType>
void Rectangle< ValueType >::setPosition ( Point< ValueType >  newPos)
inlinenoexcept

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

References Rectangle< ValueType >::pos.

◆ setPosition() [2/2]

template<typename ValueType>
void Rectangle< ValueType >::setPosition ( ValueType  newX,
ValueType  newY 
)
inlinenoexcept

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

References Rectangle< ValueType >::pos.

◆ setRight()

template<typename ValueType>
void Rectangle< ValueType >::setRight ( ValueType  newRight)
inlinenoexcept

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 juce::jmin(), Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ setSize()

template<typename ValueType>
void Rectangle< ValueType >::setSize ( ValueType  newWidth,
ValueType  newHeight 
)
inlinenoexcept

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

References Rectangle< ValueType >::h, and Rectangle< ValueType >::w.

◆ setTop()

template<typename ValueType>
void Rectangle< ValueType >::setTop ( ValueType  newTop)
inlinenoexcept

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 Rectangle< ValueType >::h, juce::jmax(), and Rectangle< ValueType >::pos.

◆ setVerticalRange()

template<typename ValueType>
void Rectangle< ValueType >::setVerticalRange ( Range< ValueType >  range)
inlinenoexcept

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

References Rectangle< ValueType >::h, and Rectangle< ValueType >::pos.

◆ setWidth()

template<typename ValueType>
void Rectangle< ValueType >::setWidth ( ValueType  newWidth)
inlinenoexcept

Changes the rectangle's width.

References Rectangle< ValueType >::w.

◆ setX()

template<typename ValueType>
void Rectangle< ValueType >::setX ( ValueType  newX)
inlinenoexcept

Changes the rectangle's X coordinate.

References Rectangle< ValueType >::pos.

◆ setY()

template<typename ValueType>
void Rectangle< ValueType >::setY ( ValueType  newY)
inlinenoexcept

Changes the rectangle's Y coordinate.

References Rectangle< ValueType >::pos.

◆ toDouble()

template<typename ValueType>
Rectangle<double> Rectangle< ValueType >::toDouble ( ) const
inlinenoexcept

◆ toFloat()

◆ toNearestInt()

template<typename ValueType>
Rectangle<int> Rectangle< ValueType >::toNearestInt ( ) const
inlinenoexcept

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()

References Rectangle< ValueType >::h, Rectangle< ValueType >::pos, juce::roundToInt(), and Rectangle< ValueType >::w.

◆ toString()

template<typename ValueType>
String Rectangle< ValueType >::toString ( ) const
inline

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 Rectangle< ValueType >::h, Rectangle< ValueType >::pos, String::preallocateBytes(), and Rectangle< ValueType >::w.

◆ toType()

template<typename ValueType>
template<typename TargetType >
Rectangle<TargetType> Rectangle< ValueType >::toType ( ) const
inlinenoexcept

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 Rectangle< ValueType >::copyWithRounding().

◆ transformedBy()

template<typename ValueType>
Rectangle Rectangle< ValueType >::transformedBy ( const AffineTransform transform) const
inlinenoexcept

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 Rectangle< ValueType >::copyWithRounding(), Rectangle< ValueType >::h, juce::jmax(), juce::jmin(), Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

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

◆ translate()

template<typename ValueType>
void Rectangle< ValueType >::translate ( ValueType  deltaX,
ValueType  deltaY 
)
inlinenoexcept

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

References Rectangle< ValueType >::pos.

◆ translated()

template<typename ValueType>
Rectangle Rectangle< ValueType >::translated ( ValueType  deltaX,
ValueType  deltaY 
) const
inlinenoexcept

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

References Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ withBottom()

template<typename ValueType>
Rectangle Rectangle< ValueType >::withBottom ( ValueType  newBottom) const
inlinenoexcept

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 juce::jmax(), juce::jmin(), Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ withBottomY()

template<typename ValueType>
Rectangle Rectangle< ValueType >::withBottomY ( ValueType  newBottomY) const
inlinenoexcept

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

References Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ withCentre()

template<typename ValueType>
Rectangle Rectangle< ValueType >::withCentre ( Point< ValueType >  newCentre) const
inlinenoexcept

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

References Rectangle< ValueType >::h, and Rectangle< ValueType >::w.

◆ withHeight()

template<typename ValueType>
Rectangle Rectangle< ValueType >::withHeight ( ValueType  newHeight) const
inlinenoexcept

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

References Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

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

◆ withLeft()

template<typename ValueType>
Rectangle Rectangle< ValueType >::withLeft ( ValueType  newLeft) const
inlinenoexcept

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 Rectangle< ValueType >::h, juce::jmax(), Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

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

◆ withPosition() [1/2]

template<typename ValueType>
Rectangle Rectangle< ValueType >::withPosition ( ValueType  newX,
ValueType  newY 
) const
inlinenoexcept

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

References Rectangle< ValueType >::h, and Rectangle< ValueType >::w.

◆ withPosition() [2/2]

template<typename ValueType>
Rectangle Rectangle< ValueType >::withPosition ( Point< ValueType >  newPos) const
inlinenoexcept

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

References Rectangle< ValueType >::h, and Rectangle< ValueType >::w.

◆ withRight()

template<typename ValueType>
Rectangle Rectangle< ValueType >::withRight ( ValueType  newRight) const
inlinenoexcept

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 Rectangle< ValueType >::h, juce::jmax(), juce::jmin(), and Rectangle< ValueType >::pos.

◆ withRightX()

template<typename ValueType>
Rectangle Rectangle< ValueType >::withRightX ( ValueType  newRightX) const
inlinenoexcept

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

References Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ withSize()

template<typename ValueType>
Rectangle Rectangle< ValueType >::withSize ( ValueType  newWidth,
ValueType  newHeight 
) const
inlinenoexcept

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

References Rectangle< ValueType >::pos.

◆ withSizeKeepingCentre()

template<typename ValueType>
Rectangle Rectangle< ValueType >::withSizeKeepingCentre ( ValueType  newWidth,
ValueType  newHeight 
) const
inlinenoexcept

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

References Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ withTop()

template<typename ValueType>
Rectangle Rectangle< ValueType >::withTop ( ValueType  newTop) const
inlinenoexcept

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 Rectangle< ValueType >::h, juce::jmax(), Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

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

◆ withTrimmedBottom()

template<typename ValueType>
Rectangle Rectangle< ValueType >::withTrimmedBottom ( ValueType  amountToRemove) const
inlinenoexcept

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

References Rectangle< ValueType >::h, and Rectangle< ValueType >::withHeight().

◆ withTrimmedLeft()

template<typename ValueType>
Rectangle Rectangle< ValueType >::withTrimmedLeft ( ValueType  amountToRemove) const
inlinenoexcept

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

References Rectangle< ValueType >::pos, and Rectangle< ValueType >::withLeft().

◆ withTrimmedRight()

template<typename ValueType>
Rectangle Rectangle< ValueType >::withTrimmedRight ( ValueType  amountToRemove) const
inlinenoexcept

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

References Rectangle< ValueType >::w, and Rectangle< ValueType >::withWidth().

◆ withTrimmedTop()

template<typename ValueType>
Rectangle Rectangle< ValueType >::withTrimmedTop ( ValueType  amountToRemove) const
inlinenoexcept

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

References Rectangle< ValueType >::pos, and Rectangle< ValueType >::withTop().

◆ withWidth()

template<typename ValueType>
Rectangle Rectangle< ValueType >::withWidth ( ValueType  newWidth) const
inlinenoexcept

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

References Rectangle< ValueType >::h, and Rectangle< ValueType >::pos.

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

◆ withX()

template<typename ValueType>
Rectangle Rectangle< ValueType >::withX ( ValueType  newX) const
inlinenoexcept

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

References Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ withY()

template<typename ValueType>
Rectangle Rectangle< ValueType >::withY ( ValueType  newY) const
inlinenoexcept

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

References Rectangle< ValueType >::h, Rectangle< ValueType >::pos, and Rectangle< ValueType >::w.

◆ withZeroOrigin()

template<typename ValueType>
Rectangle Rectangle< ValueType >::withZeroOrigin ( ) const
inlinenoexcept

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

References Rectangle< ValueType >::h, and Rectangle< ValueType >::w.

Friends And Related Function Documentation

◆ Rectangle

template<typename ValueType>
template<typename OtherType >
friend class Rectangle
friend

Member Data Documentation

◆ h

template<typename ValueType>
ValueType Rectangle< ValueType >::h
private

Referenced by Rectangle< ValueType >::constrainedWithin(), Rectangle< ValueType >::contains(), Rectangle< ValueType >::enlargeIfAdjacent(), Rectangle< ValueType >::expand(), Rectangle< ValueType >::expanded(), Rectangle< ValueType >::getAspectRatio(), Rectangle< ValueType >::getBottom(), Rectangle< ValueType >::getBottomLeft(), Rectangle< ValueType >::getBottomRight(), Rectangle< ValueType >::getCentre(), Rectangle< ValueType >::getCentreY(), Rectangle< ValueType >::getConstrainedPoint(), Rectangle< ValueType >::getHeight(), Rectangle< ValueType >::getIntersection(), Rectangle< ValueType >::getProportion(), Rectangle< ValueType >::getRelativePoint(), Rectangle< ValueType >::getSmallestIntegerContainer(), Rectangle< ValueType >::getUnion(), Rectangle< ValueType >::getVerticalRange(), Rectangle< ValueType >::intersectRectangle(), Rectangle< ValueType >::intersects(), Rectangle< ValueType >::isEmpty(), Rectangle< ValueType >::isFinite(), Rectangle< ValueType >::operator!=(), Rectangle< ValueType >::operator*=(), Rectangle< ValueType >::operator+(), Rectangle< ValueType >::operator-(), Rectangle< ValueType >::operator/=(), Rectangle< ValueType >::operator=(), Rectangle< ValueType >::operator==(), Rectangle< ValueType >::proportionOfHeight(), Rectangle< ValueType >::Rectangle(), Rectangle< ValueType >::reduceIfPartlyContainedIn(), Rectangle< ValueType >::removeFromBottom(), Rectangle< ValueType >::removeFromLeft(), Rectangle< ValueType >::removeFromRight(), Rectangle< ValueType >::removeFromTop(), Rectangle< ValueType >::setBottom(), Rectangle< ValueType >::setBounds(), Rectangle< ValueType >::setCentre(), Rectangle< ValueType >::setHeight(), Rectangle< ValueType >::setSize(), Rectangle< ValueType >::setTop(), Rectangle< ValueType >::setVerticalRange(), Rectangle< ValueType >::toDouble(), Rectangle< ValueType >::toFloat(), Rectangle< ValueType >::toNearestInt(), Rectangle< ValueType >::toString(), Rectangle< ValueType >::transformedBy(), Rectangle< ValueType >::translated(), Rectangle< ValueType >::withBottomY(), Rectangle< ValueType >::withCentre(), Rectangle< ValueType >::withLeft(), Rectangle< ValueType >::withPosition(), Rectangle< ValueType >::withRight(), Rectangle< ValueType >::withRightX(), Rectangle< ValueType >::withSizeKeepingCentre(), Rectangle< ValueType >::withTop(), Rectangle< ValueType >::withTrimmedBottom(), Rectangle< ValueType >::withWidth(), Rectangle< ValueType >::withX(), Rectangle< ValueType >::withY(), and Rectangle< ValueType >::withZeroOrigin().

◆ pos

template<typename ValueType>
Point<ValueType> Rectangle< ValueType >::pos
private

Referenced by Rectangle< ValueType >::constrainedWithin(), Rectangle< ValueType >::contains(), Rectangle< ValueType >::enlargeIfAdjacent(), Rectangle< ValueType >::expand(), Rectangle< ValueType >::expanded(), Rectangle< ValueType >::getBottom(), Rectangle< ValueType >::getBottomLeft(), Rectangle< ValueType >::getBottomRight(), Rectangle< ValueType >::getCentre(), Rectangle< ValueType >::getCentreX(), Rectangle< ValueType >::getCentreY(), Rectangle< ValueType >::getConstrainedPoint(), Rectangle< ValueType >::getHorizontalRange(), Rectangle< ValueType >::getIntersection(), Rectangle< ValueType >::getPosition(), Rectangle< ValueType >::getProportion(), Rectangle< ValueType >::getRelativePoint(), Rectangle< ValueType >::getRight(), Rectangle< ValueType >::getSmallestIntegerContainer(), Rectangle< ValueType >::getTopLeft(), Rectangle< ValueType >::getTopRight(), Rectangle< ValueType >::getUnion(), Rectangle< ValueType >::getVerticalRange(), Rectangle< ValueType >::getX(), Rectangle< ValueType >::getY(), Rectangle< ValueType >::intersectRectangle(), Rectangle< ValueType >::intersects(), Rectangle< ValueType >::isFinite(), Rectangle< ValueType >::operator!=(), Rectangle< ValueType >::operator*=(), Rectangle< ValueType >::operator+(), Rectangle< ValueType >::operator+=(), Rectangle< ValueType >::operator-(), Rectangle< ValueType >::operator-=(), Rectangle< ValueType >::operator/=(), Rectangle< ValueType >::operator=(), Rectangle< ValueType >::operator==(), Rectangle< ValueType >::reduceIfPartlyContainedIn(), Rectangle< ValueType >::removeFromBottom(), Rectangle< ValueType >::removeFromLeft(), Rectangle< ValueType >::removeFromRight(), Rectangle< ValueType >::removeFromTop(), Rectangle< ValueType >::setBottom(), Rectangle< ValueType >::setBounds(), Rectangle< ValueType >::setCentre(), Rectangle< ValueType >::setHorizontalRange(), Rectangle< ValueType >::setLeft(), Rectangle< ValueType >::setPosition(), Rectangle< ValueType >::setRight(), Rectangle< ValueType >::setTop(), Rectangle< ValueType >::setVerticalRange(), Rectangle< ValueType >::setX(), Rectangle< ValueType >::setY(), Rectangle< ValueType >::toDouble(), Rectangle< ValueType >::toFloat(), Rectangle< ValueType >::toNearestInt(), Rectangle< ValueType >::toString(), Rectangle< ValueType >::transformedBy(), Rectangle< ValueType >::translate(), Rectangle< ValueType >::translated(), Rectangle< ValueType >::withBottom(), Rectangle< ValueType >::withBottomY(), Rectangle< ValueType >::withHeight(), Rectangle< ValueType >::withLeft(), Rectangle< ValueType >::withRight(), Rectangle< ValueType >::withRightX(), Rectangle< ValueType >::withSize(), Rectangle< ValueType >::withSizeKeepingCentre(), Rectangle< ValueType >::withTop(), Rectangle< ValueType >::withTrimmedLeft(), Rectangle< ValueType >::withTrimmedTop(), Rectangle< ValueType >::withWidth(), Rectangle< ValueType >::withX(), and Rectangle< ValueType >::withY().

◆ w

template<typename ValueType>
ValueType Rectangle< ValueType >::w
private

Referenced by Rectangle< ValueType >::constrainedWithin(), Rectangle< ValueType >::contains(), Rectangle< ValueType >::enlargeIfAdjacent(), Rectangle< ValueType >::expand(), Rectangle< ValueType >::expanded(), Rectangle< ValueType >::getAspectRatio(), Rectangle< ValueType >::getBottomRight(), Rectangle< ValueType >::getCentre(), Rectangle< ValueType >::getCentreX(), Rectangle< ValueType >::getConstrainedPoint(), Rectangle< ValueType >::getHorizontalRange(), Rectangle< ValueType >::getIntersection(), Rectangle< ValueType >::getProportion(), Rectangle< ValueType >::getRelativePoint(), Rectangle< ValueType >::getRight(), Rectangle< ValueType >::getSmallestIntegerContainer(), Rectangle< ValueType >::getTopRight(), Rectangle< ValueType >::getUnion(), Rectangle< ValueType >::getWidth(), Rectangle< ValueType >::intersectRectangle(), Rectangle< ValueType >::intersects(), Rectangle< ValueType >::isEmpty(), Rectangle< ValueType >::isFinite(), Rectangle< ValueType >::operator!=(), Rectangle< ValueType >::operator*=(), Rectangle< ValueType >::operator+(), Rectangle< ValueType >::operator-(), Rectangle< ValueType >::operator/=(), Rectangle< ValueType >::operator=(), Rectangle< ValueType >::operator==(), Rectangle< ValueType >::proportionOfWidth(), Rectangle< ValueType >::Rectangle(), Rectangle< ValueType >::reduceIfPartlyContainedIn(), Rectangle< ValueType >::removeFromBottom(), Rectangle< ValueType >::removeFromLeft(), Rectangle< ValueType >::removeFromRight(), Rectangle< ValueType >::removeFromTop(), Rectangle< ValueType >::setBounds(), Rectangle< ValueType >::setCentre(), Rectangle< ValueType >::setHorizontalRange(), Rectangle< ValueType >::setLeft(), Rectangle< ValueType >::setRight(), Rectangle< ValueType >::setSize(), Rectangle< ValueType >::setWidth(), Rectangle< ValueType >::toDouble(), Rectangle< ValueType >::toFloat(), Rectangle< ValueType >::toNearestInt(), Rectangle< ValueType >::toString(), Rectangle< ValueType >::transformedBy(), Rectangle< ValueType >::translated(), Rectangle< ValueType >::withBottom(), Rectangle< ValueType >::withBottomY(), Rectangle< ValueType >::withCentre(), Rectangle< ValueType >::withHeight(), Rectangle< ValueType >::withLeft(), Rectangle< ValueType >::withPosition(), Rectangle< ValueType >::withRightX(), Rectangle< ValueType >::withSizeKeepingCentre(), Rectangle< ValueType >::withTop(), Rectangle< ValueType >::withTrimmedRight(), Rectangle< ValueType >::withX(), Rectangle< ValueType >::withY(), and Rectangle< ValueType >::withZeroOrigin().


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